137 Commits

Author SHA1 Message Date
Justin Black
9610a81a13
Adds requiredVarsMap (#13117)
* Adds requiredVarsMap

* Fixes imports

* Adds requiredVarsMap to CodegenParameter

* Updates CodegenResponse

* Adds feature to codegenModel

* Fixes codegenProperty

* Switches to getRequiredVarsMap

* Uses curly braces for set definition

* Added blocked examples back n to test spec now that the required bug is fixed

* Sample regenerated

* Handles escaping required property names

* Fixes CI tests

* Samples regenerated

* Samples regnerated

* Fixes test
2022-08-08 09:47:43 -07:00
Justin Black
aa1b0a15da
[python-experimental] removes print (#13107)
* Removes print

* Samples regenerated
2022-08-04 17:04:03 -07:00
Justin Black
8c3a734c64
[python-experimental] moves model and api docs into subfolders (#13106)
* Regens docs in new locations, adds endpoint anchors

* Updates readme links and top of page link

* Model updates so the readme links work

* Samples regenerated

* Adds missing module names to apis and models
2022-08-04 14:03:21 -07:00
Justin Black
c959a6cf38
[python-experimental] Fixes issue 12986 (#13054)
* Adds fix for api names and tag names

* Removes sample spec

* Samples regenerated
2022-08-01 15:17:25 -07:00
Justin Black
68fb5a96c5
[python-experimental] consolidates endpoints into paths module (#13007)
* Adds endpoint creation in path modules

* REgens samples

* Adds BaseApi so there can be 2 class interfaces for http method and operationid

* Adds paths init

* Adds enum containing paths

* Uses path enum for endpoint paths

* Adds camel case to undersce converstion in to ineum var name

* Fixes path enum generation

* Moves path api combination module into apis

* Moves tag apis into a tags module

* Adds path_to_api

* Changes module path to paths

* Fixes tag api imports

* Fixes self type in endpoint methods

* Adds test changes

* Adds tag enum

* Adds tag_to_api

* Adds missing tag

* Fixes self types in endpoint methods

* Refactors java endpoint generation to be simpler

* Further refactors generateEndpoints

* Generates one test file per endpoint

* Updates v3 samples

* Fixes endpoint tests, all tests passing now

* Samples regenerated

* Fixes petstore tests

* Generates separate endpoint test methods on each endpoint

* Fixes api docs and enum string values in those docs

* Regenerates samples

* Removes pass to fix tests
2022-08-01 11:22:35 -07:00
Justin Black
2b9a1ad0fc
[python-experimental] Consolidates model tests into a subfolder (#13006)
* Consolidates model tests into a subfolder

* Regenerates samples
2022-07-24 14:02:34 -07:00
Justin Black
30f1f11205
[python-experimental] Adds response body tests for json content type (#12988)
* Tags renamed

* Spec updated to add response bodies

* Adds correct tag to response body routes

* Adds response body autogen tests

* Adds pos test cases, removes dead code

* Adds and uses api_test_partial

* Samples regenerated
2022-07-24 12:33:23 -07:00
Justin Black
d1c2230709
v303 unit test spec, adds post json request bodies (#12875)
* Adds post request body routes and test data to spec

* Sample regenerated

* Adds tags and post endpoints

* Uses refs to tests examples in requestBodies

* Stops passing in test_examples into generate_operation

* Adds testCases to MediaType

* Adds refs to test cases in media type

* Adds post request body examples

* Fixes enum 1 ingestion of 1.0

* Only generates test examples when they exist

* Regenerates samples
2022-07-21 15:34:49 -07:00
Justin Black
01afbaecd8
[python-experimental] turns on allOf unit test cases (#12826)
* Spec regenerated with only allOf on

Sample regnerated

Fixes a bug where AnyType composed schemas omitted validations, Fixes a bug where properties in AnyType schemas were omitted, Stops storing multipleOf value in a list

Adds required variable info to AnyType classes

Samples regenerated

Turns all unit tests back on

* Samples regenerated

* Docs and models regenerated
2022-07-13 19:27:55 -07:00
Justin Black
c44fe8a04a
Fixes fromProperty when property is required vs optional (#12858)
* Adds required boolean to fromProperty

* Adds required to other method signatures

* pythn-exp sample regenerated

* Samples regenerated

* Adds java test of fix
2022-07-13 18:17:33 -07:00
Justin Black
d6b360d47f
[python-experimental] Allow schema instances to be passed in and pass additional schema validations (#12758)
* Converts all schema instances back into primitives in cast_to_allowed_types, fixes test test_deserialize_oneof_reference

* Updates type hint

* Adds validated_path_to_schemas input

* Adds debugging, storess validated schemas in validated_path_to_schemas

* Adds __process_schema_classes

* Simplifies class creation for enums, True/False/None

* Removes unused methods

* Fixes two tests

* Removes unneeded method _enum_by_value

* Adds and uses validation_ran_earlier

* Skips running validation if already ran, base_classes changed to seen_classes

* Adds and uses validation_ran_earlier

* Simplifies __get_simple_class

* Casts None/True/False into NoneClass and BoolClass instances to make tpye checking and unique items checking simpler

* Always cast file input to FileIO, removes __get_simple_class

* Moves type checking to separate class

* Moves validation checking into a _validate method

* Moves enum value checking into SchemaEnumMaker's _validate method

* Fixes test_dict_validate_direct_instantiation_cast_item

* Removes spy_decorator

* Fixed test_dict_validate_direct_instantiation

* Fixes test_list_validate_direct_instantiation_cast_item

* Fixes test_list_validate_direct_instantiation

* Fixes test_list_validate_from_openai_data_instantiation

* Fixes test_dict_validate_from_openapi_data_instantiation

* Fixes test_upload_files

* Samples regenerated

* Reverts version file
2022-07-09 18:06:09 -04:00
William Cheng
6cae0fbb78 Merge remote-tracking branch 'origin/6.1.x' 2022-07-04 01:22:51 +08:00
William Cheng
9e412edb64
Prepare 6.0.1 release (#12762)
* update to v6.0.1

* update doc

* update samples
2022-07-03 23:36:46 +08:00
Justin Black
6158274f65
Adds openapi v3.0.3 unit test spec, includes test cases, autogenerates model tests with them (#12619)
* Adds draft6 tests and python file reader

* Adds processing of multiple files

* Moves test examples into a different component so component schemas can be booleans

* Excludes boolean schema cases and some others that contain patternProperties

* Adds automatic test generation, template not quite working with indentation

* Turns on allOf tests, some failing

* Adds more generated components and tests

* Adds enum tests

* Turns on all of themissing tests

* Adds exclmax and min exclusion reasons

* Adds items test cases

* Adds maximum

* Adds maxItems

* Adds maxLength

* Adds maxProperties

* Adds minimum

* Adds minItems

* Adds minLength

* Adds minProperties

* Adds multipleOf

* Adds not

* Adds oneOf

* Adds pattern

* Adds patternProperties

* Working on properties examples, partial fix for escaped characters

* Further improves example string escaping

* Fixes properties test cases

* Adds draft6 test samples license

* Adds ref

* Finishes ref

* Adds remoteRef

* Adds required

* Improves required testing

* Fixes build error / javadoc warning

* Fixes uniqueItems bug in python-experimental

* Turns all tests back on

* Fixes 2 failing tests, all python tests pass

* Fixes java npe errors

* Fixes formatting of tests, indentation fixed

* Test fase name fixed to toTestCaseName, docstring added to ObjectWithTypeBooleans

* Fixes typo

* Adds test deletion to samples generation, samples regenerated

* Updates python-exp unit test sample, includes new ref examples
2022-07-01 13:46:02 -07:00
Justin Black
a00ae4631d
Fixes double serialization bug in python-experimental (#12561)
* Partial template update, simplifies ref6570 serialization

* Updated serialization

* Typo fixes

* Fixes test_query_style_form_serialization

* Fixes test_cookie_style_form_serialization

* FIxes test_style_simple_in_path_serialization

* Fixes test_style_simple_in_header_serialization

* Fixes many parameter tests

* Deletes duplicate method

* Fixes TestParameter.test_path_params_no_style

* Fixes test_style_pipe_delimited_serialization

* Fixes test_header_params_no_style

* Fixes test_style_space_delimited_serialization

* Fixes test_query_style_form_serialization

* Fixes test_cookie_style_form_serialization

* Fixes test_query_params_no_style

* Fixes test_cookie_params_no_style

* Fixes test_delete_endpoint_without_request_body

* Fixes all tests

* Reverts version file

* Adds test_get_user_by_name to test path param url encoding

* Adds test_body_with_query_params

* Samples regenerated
2022-06-13 07:45:15 -07:00
William Cheng
5bd94b8fa0 prepare 6.1.x 2022-05-26 12:58:25 +08:00
William Cheng
36a9cf394d
update samples (#12466) 2022-05-26 12:13:59 +08:00
William Cheng
69f79fb789
Prepare 6.0.0 release (#12463)
* prepare 6.0.0 release

* update samples

* update meta codegen
2022-05-26 10:28:01 +08:00
Justin Black
4d544994fd
[python-experimental] BoolSchema + NoneSchema improvements (#12411)
* Moves is_none is_true is_false methods into base mixins, adds tests

* Improves docstrings
2022-05-23 15:55:49 -07:00
Justin Black
8fc85530e8
[python-experimental] fixes delete endpoint with no body use case (#12287)
* Generates delete_coffee endpoint

* Adds test of delete_coffee

* Removes .run files

* Fixes bug and adds test

* Reverts version file

* Reverts function sig

* Removes comma
2022-05-02 18:42:13 -07:00
Justin Black
5de527e784
Enables test_inline_composition (#12240) 2022-04-25 22:09:31 -07:00
Justin Black
c456de40c0
Adds ability to turn inline model resolver on or off and uses it in python-experimental (#12198)
* Adds getUseInlineModelResolver and uses it

* Regenerates python-exp samples

* Regenerates docs

* Samples regenerated

* Moves codegenProperty.complexType setting

* Fixes python-experimental tests

* Reverts vesion file change

* Improves type setting code for python-exp

* Fixes AnyType type hint

* Samples regenerated
2022-04-25 21:44:05 -07:00
Justin Black
fbdd3c3e22
[python-experimental] Fixes enum is comparison (#12176)
* Fixes enum is comparison

* Reverts file
2022-04-19 21:28:42 -07:00
William Cheng
8330e16d66
Better inline model resolver to handle inline schema in array item (#12104)
* better support of inline schema in array item

* update tests

* update samples

* regenerate samples

* fix allof naming, remove files

* add files

* update samples

* update readme

* fix tests

* update samples

* update samples

* add new files

* update test spec

* add back tests

* remove unused files

* comment out python test

* update js test using own spec

* remove files

* remove unused files

* remove files

* remove unused files

* better handling of allOf with a single type

* comment out go test

* remove test_all_of_with_single_ref_single_ref_type.py

* fix inline resolver, uncomment go test
2022-04-20 10:28:15 +08:00
Justin Black
6a77660b08
[python-experimental] fixes bug where some singleton representations raised a RecursionError (#12157)
* Adds issue components and endpoint

* Regenerates samples

* Fixes singleton repr, removes issue components and endpoint

* Removes unused endpoint

* Reverts file

* Adds tests of enum, boolean, and none representations

* Uses super repr for singletons that ere not none, true, or false
2022-04-17 14:06:17 -07:00
Justin Black
e2e7609bac
Adds not to CodegenComposedSchemas and uses it in python-exp (#12146)
Updates docs
2022-04-17 09:36:09 -07:00
Justin Black
eef7cddd6f
Adds UUID to python-experimental (#12153)
* Adds UUID to python-exp, allows uuid models to be generated

* Adds test_UUIDString uuid model test

* Fixes uuid properties in python-exp, changes maps to object data type, adds uuid data type

* Adds maps data type back in

* Adds missing Null and AnyType definitions and adds them to python-experimental

* Generator docs updated, added missing uuid, null, anytype, and object

* Adds uuid support description

* Docs updated
2022-04-16 14:55:49 -07:00
Justin Black
1deaaa88fe
[python-experimental] Allow response media types to omit schema (#12135)
* Adds issue spec file and attemts to generate code from it

* Adds missing schema definitions

* Skips fromProperty invocation if the passed in schema is none in getContent

* Makes MediaType.schema optional

* Adds checking that the content type is in self.content

* Sets ApiResponse body type as Unset if there is no schema for it

* Handles schema = None case

* Adds endpoint without response schema

* Reverts version files

* Adds test_response_without_schema
2022-04-13 15:45:33 -07:00
Justin Black
b29b5e1045
[python-experimental] fixes json + charset use case (#12114)
* Adds code to detect json content type when charset is also set

* Updates template to properly render content type, regenerates samples

* Adds test_json_with_charset

* Reverts version file

* Fixes typo
2022-04-11 20:05:26 -07:00
Justin Black
d45f72da32
Eliminates handlebars helper warnings (#12078) 2022-04-07 15:35:15 -07:00
Justin Black
32295bf46f
[python-experimental] adds missing init files in endpoint modules (#12077)
* Adds mising init files inthe endpoint modules

* Reverts versin file

* Fixes test

* Samples regenerated
2022-04-07 13:23:52 -07:00
Justin Black
2e19371a26
Fix the null pointer exception when generating examples for schemas in python-experimental (#12019)
* Improves example generator for python-experimental

* Fixes quotes around date example

* Improves object schema examplple gen

* Samples regenerated

* Adds back in AnyType + oneOf discriminator handling

* Reverts version file

* Returns early in example gen for array composed schemas

* Adds toExampleValue method to python-exp

* Improves pattern regex sample generation in python-experimental

* Fixes comment typo
2022-04-07 11:17:37 -07:00
Katsuyuki Omuro
efc1a66ebc
[Ruby] Fix incorrectly capitalized identifier in apis template (#12045) 2022-04-05 17:50:44 +08:00
William Cheng
2d4a01aa70 Revert "Prepare 6.0.0 beta release (#12039)"
This reverts commit 914b539eea7097ad2b4323d20c8f95144782cb68.
2022-04-04 12:17:12 +08:00
William Cheng
914b539eea
Prepare 6.0.0 beta release (#12039)
* update to 6.0.0-beta

* update samples
2022-04-04 10:29:49 +08:00
Daniel Qian
41451ff5ee
fix #11958 [BUG] python generates wrong model name and model file name (#11959)
* fix #11958 [BUG] python generates wrong model name and model file name

Modify AbstractPythonCodegen.toModelName just like AbstractJavaCodegen.toModelName

* add unit test

* update samples and docs
by
./bin/generate-samples.sh
./bin/utils/export_docs_generators.sh

* fix AbstractPythonCodegen#toModelName logic, remove underscore

* update samples and docs
by
./bin/generate-samples.sh
./bin/utils/export_docs_generators.sh
2022-04-01 19:43:08 -07:00
Justin Black
a4e2dde745
Fixes issue where object in query parameter generates a NPE (#12010)
* Fixes issue 11946

* Fixes items assignment for deep object query params

* Adds fix for inline query param object schemas

* Fixes keyword name, changes it from mapBean[keyword]

* Reverts version file
2022-03-30 15:30:26 -07:00
William Cheng
df05e6f4bc
Update parser to 2.0.29 (#11388)
* update parser to 2.0.29

* better handling of null in dereferencing

* update parser to 2.0.30

* update core to newer version

* add new files

* rollback to previous stable version

* remove files

* Fixes for python-experimental NullableShape component

Co-authored-by: Justin Black <justin.a.black@gmail.com>
2022-02-21 18:37:52 +08:00
Justin Black
b165d2dda9
[python-experimental] fn + method signature improvements (#11529)
* Updates code

* Removes java files
2022-02-16 10:52:31 -08:00
William Cheng
ec51e9cd0b update samples 2022-02-14 12:54:26 +08:00
William Cheng
5346d0b6b7 update samples 2022-02-14 11:45:12 +08:00
Ethan Keller
9f5422d688
Add cycle detection (#7532) (#11500)
* Add cycle detection (#7532)

* Review feedback

* Including ContextAwareNodes to detect cycles more accurately.

* Add test

* Add forest to test.

* No longer need ContextAwareNode

* Review feedback

* Update samples
2022-02-06 13:21:17 -05:00
Justin Black
6cf4e79f14
[python-experimental] adds missing bases, performance improvements (#11517)
* Adds bases for int32, int64, float32, and float64

* Samples updated

* Removes print statements

* When creating properties and items do not call _from_openapi_data or model __new__

* Update speed improvement

* cast_to_allowed_types speeed improvements

* _get_new_instance_without_conversion order swap for speed

* Fixes test errors

* Small fixes about path_to_schemas
2022-02-04 07:47:16 -08:00
Justin Black
4d9a500c95
Adds inline composition examples to python-experimental (#11420)
* Adds component with composition in property example

* Adds endpoint parameter examples

* Adds request body examples

* Adds inpline composition example in response body

* Fixes UNKNOWNBASETYPE import bug

* Updates allof inline schemas to be type object with minProperties

* Removes newline

* Adds test_ObjectWithInlineCompositionProperty

* Updates inline schema to be type string, adds partial test_inline_composition

* Fixes accept_content_types input value

* Adds test_ObjectWithInlineCompositionProperty, adds test_inline_composition and starts deserialization of multipart

* Fixes test_inline_composition, adds simple multipat/form-data deserialization
2022-02-03 08:27:52 -08:00
William Cheng
c8b84c4d03 Merge remote-tracking branch 'origin/master' into 6.0.x 2022-01-30 18:01:35 +08:00
Justin Black
42f3258faa
Turns on python-experimental CI tests (#11390)
* Installs python3.9 in node3

* Moves python clients into separate node so they can use a docker image

* Installs java and maven into docker

* Switches off some python tests
2022-01-24 15:44:38 -08:00
Ethan Keller
6430aaf3b1
recursively search for types during import type collection in deeply … (#11221)
* recursively search for types during import type collection in deeply nested schemas #11220

* composed schema recursive type import handling

* change Importable to ComplexType to modularize related type-wrangling.

* Problems...

* Revert "Problems..."

This reverts commit 6154f202a0f4db7a706fe3d61b45573581d164d4.

* Reverted attempts to reuse recursive type-finding code.

* add javadoc comments

* fix javadoc warning.

* fix NPE

* PR feedback incorporation

* Include additionalProperties recursion.

* More feedback

* More feedback

* Add comments from feedback
2022-01-14 12:39:22 -08:00
Justin Black
95a1154c20
python-experimental adds DecimalSchema (#11282)
* Fixes test

* Adds decimal examples to the pythonExp generator

* Adds isDecimal to CodegenModel, updates python-exp samples

* Fixes decimal types in ObjectModelWIthDecimalProperties and DecimalPayload

* Updates tests

* Decimal feature added to python-exp docs

* Samples and docs regenerated
2022-01-11 21:51:50 -08:00
Justin Black
ce04e9b6a2
python-experimental, redundant docstrings removed (#11281)
* Removes docstrings drom models because type hints already includes this info

* Samples updated
2022-01-11 09:31:25 -08:00
Justin Black
de036e211e
Improves generator docs: stability + language version added (#11270)
* Adds generatorLanguageVersion and uses it in python generators

* Regenerates docs

* Adds stability to generator docs

* Triple braces generatorLanguageVersion

* Regenerates samples

* Fixes the python-experimental setup.py file so it works with generatorLanguageVersion

* Updates generators readme
2022-01-10 18:16:53 -08:00