Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Ignore specific files when generating the client #454

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
clasnake opened this issue Jul 13, 2021 · 6 comments
Closed

Ignore specific files when generating the client #454

clasnake opened this issue Jul 13, 2021 · 6 comments
Labels
✨ enhancement New feature or improvement

Comments

@clasnake
Copy link

Is your feature request related to a problem? Please describe.
When generating the client from open api spec, sometimes we need to prevent some specific files to be overwritten. I haven't found a native support in openapi-python-client currently.

Describe the solution you'd like
We can follow the .gitignore pattern and provide something like .openapi_python_ignore.

Describe alternatives you've considered
N/A

Additional context
N/A

@clasnake clasnake added the ✨ enhancement New feature or improvement label Jul 13, 2021
@emann
Copy link
Collaborator

emann commented Jul 20, 2021

When you say files being overwritten, do you mean in the generated client? i.e. generate version A, update it to version B, but leave some files untouched? Or do you mean you want to ignore parts of the spec itself? If so this is likely a duplicate of #55 as that should get you where you need.

@bolbken
Copy link

bolbken commented Jul 28, 2021

@clasnake , I think you are describing the same issue that I am facing: This generator does not seem to allow for files not generated from the spec inside the package.

After a quick browse it appears that the same methods used to in the generate command are used in the update command, seen here. This means that the package is essentially wiped every time an update command is executed as far as I can tell.

If I'm right, this means that potentially a .openapi-python-ignore is feasible with shutil, but an initial implementation may affect the generate and update commands.

@emann , what I am describing is similar to what the openapi-generator tool has implemented.

@bolbken
Copy link

bolbken commented Jul 28, 2021

@emann / @dbanty , I don't intend to push, but ...

  1. What are your thoughts on this feature? Am I missing something?
  2. Is this project open to new contributors?
  3. If some implementation allowing for file/directory ignore patterns materialized... would you want it to affect generate and update commands?

@dbanty
Copy link
Collaborator

dbanty commented Jul 28, 2021

@bolbken in order:

  1. Sounds like a great feature, and you’re correct in your assessment of current behavior.
  2. Yes! Though currently we’re rather slow to respond / review 😅. I am mostly limited to weekend time at the moment.
  3. I think it’d make sense to mirror the functionality from openapi-generator. update was just the easy alternative to full ignore functionality so you could leave metadata / external packages in place. I think it just becomes a special case of generate with prebaked ignore rules.. right? I don’t actually use update myself anymore so I could be forgetting something >_>.

@bolbken
Copy link

bolbken commented Jul 29, 2021

@dbanty Thanks for the quick, concise response.

In the coming weeks I may take this on and attempt an implementation. This is truly a superior generator for python clients from openapi specs. Looking forward to potentially being able to contribute in the future. Thanks! :)

@adelevie
Copy link
Contributor

Hi @dbanty -- I am curious if you think this feature belongs in this library. I certainly do, though there seem to be several plausible implementations.

@openapi-generators openapi-generators locked and limited conversation to collaborators Aug 13, 2023
@dbanty dbanty converted this issue into discussion #826 Aug 13, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
✨ enhancement New feature or improvement
Projects
None yet
Development

No branches or pull requests

5 participants