openapi-python-client icon indicating copy to clipboard operation
openapi-python-client copied to clipboard

Ignore specific files when generating the client

Open clasnake opened this issue 3 years ago • 6 comments

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 avatar Jul 13 '21 06:07 clasnake

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.

emann avatar Jul 20 '21 14:07 emann

@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 avatar Jul 28 '21 20:07 bolbken

@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?

bolbken avatar Jul 28 '21 21:07 bolbken

@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 >_>.

dbanty avatar Jul 28 '21 23:07 dbanty

@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! :)

bolbken avatar Jul 29 '21 14:07 bolbken

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.

adelevie avatar Jul 19 '22 14:07 adelevie