[BUG] Slow deserialisation into objects in generated python sdk
Bug Report Checklist
- [x] Have you provided a full/minimal spec to reproduce the issue?
- [x] Have you validated the input using an OpenAPI validator (example)?
- [x] Have you tested with the latest master to confirm the issue still exists?
- [x] Have you searched for related issues/PRs?
Related Issues: https://github.com/OpenAPITools/openapi-generator/issues/4181
Description
We are seeing slow performance when deserialising responses from API calls into model objects. The actual deserialisation from JSON to dict looks ok, but mapping the dict to model objects is slow
openapi-generator version
5.1.0
OpenAPI declaration file content or url
https://www.lusid.com/api/swagger/v0/swagger.json
Generation Details
java -jar openapi-generator-cli.jar generate \
-i $swagger_file \
-g python-legacy
Steps to reproduce
A sample repo to reproduce can be found at https://github.com/rizwansaeed/OpenAPIPerf, this uses the generated sdk which also be found at https://github.com/finbourne/lusid-sdk-python-preview
/data/lusid.json - OpenAPI spec
/data/response.json - sample response
/python/main.py - test to show the deserialisation performance
With this we see it takes ~ 24s to deserialise the response into model objects
47218117 function calls (45073006 primitive calls) in 24.371 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 24.371 24.371 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api/transaction_portfolios_api.py:3257(get_transactions)
1 0.000 0.000 24.371 24.371 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api/transaction_portfolios_api.py:3303(get_transactions_with_http_info)
1 0.000 0.000 24.371 24.371 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api_client.py:327(call_api)
1 0.013 0.013 24.371 24.371 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api_client.py:121(__call_api)
1 0.000 0.000 24.342 24.342 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api_client.py:266(deserialize)
585025/1 0.948 0.000 24.061 24.061 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api_client.py:288(__deserialize)
260006/1 1.968 0.000 24.061 24.061 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api_client.py:664(__deserialize_model)
2 0.007 0.003 24.054 12.027 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api_client.py:302(<listcomp>)
10000 0.105 0.000 18.360 0.002 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api_client.py:307(<dictcomp>)
260006 0.160 0.000 15.923 0.000 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/configuration.py:245(get_default_copy)
260006 1.950 0.000 15.763 0.000 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/configuration.py:90(__init__)
9880228/8580198 3.630 0.000 11.581 0.000 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/configuration.py:224(__setattr__)
120000 0.211 0.000 7.601 0.000 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/models/perpetual_property.py:56(__init__)
120000 0.169 0.000 7.347 0.000 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/models/property_value.py:59(__init__)
260006 0.525 0.000 6.506 0.000 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/configuration.py:299(debug)
520012 0.347 0.000 4.970 0.000 /usr/local/Cellar/[email protected]/3.9.8/Frameworks/Python.framework/Versions/3.9/lib/python3.9/logging/__init__.py:1417(setLevel)
520012 2.748 0.000 4.440 0.000 /usr/local/Cellar/[email protected]/3.9.8/Frameworks/Python.framework/Versions/3.9/lib/python3.9/logging/__init__.py:1372(_clear_cache)
15002 0.012 0.000 3.460 0.000 /OpenAPIPerf/python/venv/lib/python3.9/site-packages/lusid/api_client.py:643(__deserialize_datetime)
I have tried this with the latest python (non-legacy) version and observe similar performance characteristics
Process finished with exit code 0
52273648 function calls (46098366 primitive calls) in 25.016 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 25.016 25.016 /lusid-sdk-python-preview/sdk/lusid/api_client.py:761(__call__)
1 0.000 0.000 25.016 25.016 /lusid-sdk-python-preview/sdk/lusid/api/transaction_portfolios_api.py:3039(__get_transactions)
1 0.000 0.000 25.016 25.016 /lusid-sdk-python-preview/sdk/lusid/api_client.py:774(call_with_http_info)
1 0.000 0.000 25.015 25.015 /lusid-sdk-python-preview/sdk/lusid/api_client.py:335(call_api)
1 0.000 0.000 25.015 25.015 /lusid-sdk-python-preview/sdk/lusid/api_client.py:118(__call_api)
1 0.000 0.000 25.008 25.008 /lusid-sdk-python-preview/sdk/lusid/api_client.py:290(deserialize)
585034/10 1.214 0.000 24.710 2.471 /lusid-sdk-python-preview/sdk/lusid/model_utils.py:1357(validate_and_convert_types)
275008/1 0.476 0.000 24.710 24.710 /lusid-sdk-python-preview/sdk/lusid/model_utils.py:1244(attempt_convert_item)
260006/1 0.926 0.000 24.710 24.710 /lusid-sdk-python-preview/sdk/lusid/model_utils.py:1166(deserialize_model)
260006/1 0.634 0.000 24.710 24.710 /lusid-sdk-python-preview/sdk/lusid/model_utils.py:1562(wrapped_init)
1 0.000 0.000 24.710 24.710 /lusid-sdk-python-preview/sdk/lusid/model/versioned_resource_list_of_transaction.py:118(__init__)
2015056/11 0.658 0.000 24.710 2.246 /lusid-sdk-python-preview/sdk/lusid/model_utils.py:166(__setattr__)
2015056/11 0.935 0.000 24.710 2.246 /lusid-sdk-python-preview/sdk/lusid/model_utils.py:347(__setitem__)
455020/5 3.066 0.000 24.710 4.942 /lusid-sdk-python-preview/sdk/lusid/model_utils.py:106(set_attribute)
5000 0.061 0.000 24.422 0.005 /lusid-sdk-python-preview/sdk/lusid/model/transaction.py:142(__init__)
480045/170034 0.192 0.000 21.073 0.000 {built-in method builtins.setattr}
120000 0.474 0.000 13.597 0.000 /lusid-sdk-python-preview/sdk/lusid/model/perpetual_property.py:106(__init__)
120000 0.447 0.000 5.855 0.000 /lusid-sdk-python-preview/sdk/lusid/model/property_value.py:110(__init__)
1590070 1.895 0.000 4.245 0.000 /lusid-sdk-python-preview/sdk/lusid/model_utils.py:621(get_simple_class)
15002 0.046 0.000 3.582 0.000 /lusid-sdk-python-preview/sdk/lusid/model_utils.py:1062(deserialize_primitive)
For reference, and whilst it is not an exact like for like comparison, the test in csharp/OpenAPIPerf/UnitTest1.cs deserialising the model objects in less than 1 second.
Suggest a fix
It looks like when the __deserialise function comes across a list or dictionary it sequentially iterates over each item, and when there are nested structured objects this exacerbates the issue.
Are there any quick wins/settings we can use to improve the performance?
Thank you for posting this issue with all the needed inputs to understand what is going on. Our code is doing run time type checking on values in every location. My hope is that the python-experimental generator will be quicker. Let me get back to you with an analysis of python-experimental. That generator generally does no coercion and we could potentially cache redundant type checking calls. Also your response is a huge 13.8 mb. With python_experimental when there are endpoints where you don't want deserialization, you can pass in skip_deserialization=True to speed it up a lot, which is probably not what you want.
For the python client you could pass in check_type=False but then errors will not be thrown if the server changes value types and gets out of sync with your spec.
Thanks for looking into this. Unfortunately we don't have too much control over the responses and some of the ones we get end up being large.
Where can I try setting check_type=False, is that for the python generator only or is there some equivalent for the python-legacy?
Yes in the python-legacy you can pass _preload_content=False which gives the same behaviour as skip_deserialization=True.
Obviously it improves performance but with the cost of not using any of the model classes.
Hmm some unfortunate news, python-experimental takes longer. Let me see if there are some optimizations that jump out at me. This PR was needed to allow your spec to work: https://github.com/OpenAPITools/openapi-generator/pull/11517 And my test branch is at: https://github.com/rizwansaeed/OpenAPIPerf/pull/1
(venv) Justins-MacBook-Air:luisd justinblack$ python main.py
62948742 function calls (56798577 primitive calls) in 50.987 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.053 0.053 50.987 50.987 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api/transaction_portfolios_api_endpoints/get_transactions.py:457(get_transactions)
1 0.002 0.002 50.933 50.933 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:800(deserialize)
260002/1 0.406 0.000 50.585 50.585 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1998(_from_openapi_data)
585025/1 2.087 0.000 50.557 50.557 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1353(_from_openapi_data)
585027 2.496 0.000 29.915 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1263(__get_new_cls)
270019/1 1.352 0.000 24.930 24.930 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:945(_validate)
270006/1 2.928 0.000 23.048 23.048 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:909(_validate_args)
19/2 0.000 0.000 20.354 10.177 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:741(_validate)
585027/3 0.941 0.000 18.629 6.210 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1336(__get_new_instance_without_conversion)
270006/1 2.301 0.000 18.629 18.629 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1026(_get_properties)
1 0.028 0.028 18.629 18.629 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1696(_from_openapi_data)
2 0.090 0.045 18.215 9.108 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:709(_validate_items)
2 0.036 0.018 16.423 8.212 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:770(_get_items)
3320083/585027 7.402 0.000 12.825 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1444(cast_to_allowed_types)
855032 5.491 0.000 12.169 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:64(update)
1435015/275010 1.615 0.000 10.618 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1483(<dictcomp>)
5470112 6.530 0.000 6.530 0.000 {method 'union' of 'set' objects}
585027 1.915 0.000 5.746 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1201(_validate)
4 0.007 0.002 4.637 1.159 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1481(<listcomp>)
28386063 4.391 0.000 4.391 0.000 {built-in method builtins.isinstance}
725027 0.471 0.000 1.678 0.000 {built-in method builtins.any}
2465108/2450108 1.359 0.000 1.526 0.000 {built-in method builtins.hasattr}
585027 0.893 0.000 1.491 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1096(__get_simple_class)
160002 0.208 0.000 1.371 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1858(_from_openapi_data)
1750081 0.477 0.000 1.157 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1293(<genexpr>)
585027 1.042 0.000 1.042 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:391(_validate_type)
1170051 0.957 0.000 0.957 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:78(__init__)
15002 0.052 0.000 0.883 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:634(_validate)
270006 0.657 0.000 0.698 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:857(_validate_arg_presence)
15002 0.034 0.000 0.643 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:622(_validate_format)
15002 0.070 0.000 0.606 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:23(func)
1050144 0.499 0.000 0.559 0.000 {built-in method builtins.getattr}
15002 0.085 0.000 0.517 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:555(parse_isodatetime)
580027 0.374 0.000 0.477 0.000 {built-in method builtins.sorted}
580040 0.351 0.000 0.351 0.000 {built-in method __new__ of type object at 0x10bd2ed40}
1 0.000 0.000 0.346 0.346 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:741(__deserialize_json)
1 0.000 0.000 0.337 0.337 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py:299(loads)
1 0.000 0.000 0.337 0.337 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py:332(decode)
1 0.337 0.337 0.337 0.337 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py:343(raw_decode)
15002 0.219 0.000 0.324 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:330(_parse_isotime)
580039 0.309 0.000 0.309 0.000 {method 'get' of 'dict' objects}
20002 0.047 0.000 0.306 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:356(_validate_validations_pass)
1705021 0.300 0.000 0.300 0.000 {method 'items' of 'frozendict.frozendict' objects}
1150047 0.281 0.000 0.281 0.000 {method 'items' of 'dict' objects}
20002 0.073 0.000 0.259 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:324(_check_validations_for_types)
25000 0.135 0.000 0.243 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:404(_enum_by_value)
1320091 0.204 0.000 0.204 0.000 {method 'add' of 'set' objects}
1170087 0.197 0.000 0.197 0.000 {built-in method builtins.issubclass}
20000 0.096 0.000 0.174 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:257(__check_numeric_validations)
580022 0.169 0.000 0.169 0.000 {method 'update' of 'dict' objects}
585027 0.155 0.000 0.155 0.000 {method 'intersection' of 'set' objects}
15000 0.026 0.000 0.144 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1840(_from_openapi_data)
15000 0.019 0.000 0.119 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1728(_from_openapi_data)
580027 0.103 0.000 0.103 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1313(<lambda>)
720087/720085 0.101 0.000 0.101 0.000 {built-in method builtins.len}
15002 0.012 0.000 0.101 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:206(_parse_isodate)
480000 0.091 0.000 0.091 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:190(_additional_properties)
15002 0.084 0.000 0.089 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:212(_parse_isodate_common)
50000 0.072 0.000 0.072 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:447(_enum_value_to_name)
100006 0.049 0.000 0.071 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:118(__is_json_validation_enabled)
15002 0.051 0.000 0.055 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:383(_parse_tzstr)
280000 0.052 0.000 0.052 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1310(<genexpr>)
240000 0.049 0.000 0.049 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/perpetual_property.py:80(value)
5000 0.007 0.000 0.048 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1256(_validate_enum_value)
15004 0.032 0.000 0.032 0.000 {method 'match' of 're.Pattern' objects}
140000 0.020 0.000 0.020 0.000 {method 'pop' of 'set' objects}
20000 0.016 0.000 0.016 0.000 {method 'as_integer_ratio' of 'decimal.Decimal' objects}
75000 0.014 0.000 0.014 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:2060(log_cache_usage)
30004 0.012 0.000 0.012 0.000 {method 'group' of 're.Match' objects}
5000 0.010 0.000 0.010 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:471(__new__)
5 0.009 0.002 0.009 0.002 {method 'decode' of 'bytes' objects}
15010 0.009 0.000 0.009 0.000 {method 'encode' of 'str' objects}
20000 0.008 0.000 0.008 0.000 {method 'isdisjoint' of 'set' objects}
10000 0.004 0.000 0.004 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:134(transactionPrice)
10000 0.004 0.000 0.004 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:247(otcConfirmation)
15002 0.004 0.000 0.004 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:26(<lambda>)
10000 0.003 0.000 0.003 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:139(totalConsideration)
5047 0.002 0.000 0.002 0.000 {method 'append' of 'list' objects}
27 0.001 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:2046(get_new_class)
2 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:983(_get_child_mock)
2 0.000 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:432(serialize)
2 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2033(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1399(__new__)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1088(__call__)
4/3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:625(__getattr__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api/transaction_portfolios_api_endpoints/get_transactions.py:298(__new__)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1096(_mock_call)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1145(_execute_mock_call)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:513(__get_return_value)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2039(_mock_set_magics)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1071(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:145(__check_str_validations)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:416(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py:198(search)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:485(_mock_add_spec)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py:289(_compile)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:759(compile)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/coroutines.py:164(iscoroutinefunction)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:400(__new__)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:190(iscoroutinefunction)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:968(call_api)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:914(__call_api)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:172(_has_code_flag)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:937(parse)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api/transaction_portfolios_api_endpoints/get_transactions.py:324(__new__)
9 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1003(_property_names)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:598(_code)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:3064(bind_partial)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1099(_increment_mock_call)
160 0.000 0.000 0.000 0.000 {built-in method builtins.setattr}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2926(_bind)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:435(_parse_sub)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:493(_parse)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:71(_compile)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:425(_serialize_simple)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:255(_serialize_simple_tuple)
160 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2104(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:201(_serialize_x)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/parse.py:819(quote)
15/12 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:730(__setattr__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:100(__serialize_str)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:276(_optimize_charset)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/parse.py:890(quote_from_bytes)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:81(ismethod)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:536(_compile_info)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/functools.py:420(_unwrap_partial)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:159(isfunction)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_collections_abc.py:932(update)
2 0.000 0.000 0.000 0.000 {built-in method builtins.dir}
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2400(__new__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:1164(_verify_typed_dict_inputs)
13 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:254(get)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/abc.py:117(__instancecheck__)
1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck}
4 0.000 0.000 0.000 0.000 {method 'rstrip' of 'bytes' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:411(_mk_bitmap)
11 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:320(_get)
17 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:233(__next)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:174(getwidth)
52 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:998(_additional_properties)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/abc.py:121(__subclasscheck__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:977(__and__)
3 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:215(add)
61 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2577(kind)
2/1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1395(__remove_unsets)
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:164(__getitem__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:526(__set_return_value)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:562(__set_side_effect)
7 0.000 0.000 0.000 0.000 {method 'get' of 'frozendict.frozendict' objects}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:342(_remove_empty_and_cast)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:224(__init__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:443(host)
9 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:325(_set)
9 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:356(_check_and_set_parent)
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2432(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:413(<listcomp>)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:358(__call__)
1 0.000 0.000 0.000 0.000 <string>:2(__init__)
8 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:249(match)
22 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:295(_class_escape)
3 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}
28 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2565(name)
2 0.000 0.000 0.000 0.000 {method 'search' of 're.Pattern' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:432(_uniq)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:404(get_host_from_settings)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:249(_compile_charset)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:141(__init__)
9 0.000 0.000 0.000 0.000 {method 'items' of 'mappingproxy' objects}
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:172(append)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:423(_simple)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:1121(update_params_for_auth)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:75(_extract_mock)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:272(_is_magic)
8 0.000 0.000 0.000 0.000 {built-in method builtins.next}
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:160(__len__)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:286(tell)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:461(_get_literal_prefix)
5 0.000 0.000 0.000 0.000 {method 'find' of 'bytearray' objects}
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:152(__setitem__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:57(default)
5 0.000 0.000 0.000 0.000 {built-in method builtins.min}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:670(__new__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:921(fix_flags)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:538(__class__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/versioned_resource_list_of_transaction.py:80(version)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:76(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:111(__init__)
2 0.000 0.000 0.000 0.000 {method 'replace' of 'str' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:492(_get_charset_prefix)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:595(isstring)
4 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:346(<genexpr>)
1 0.000 0.000 0.000 0.000 {built-in method _sre.compile}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/versioned_resource_list_of_transaction.py:90(_items)
8 0.000 0.000 0.000 0.000 {built-in method builtins.ord}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
3 0.000 0.000 0.000 0.000 {method 'setdefault' of 'collections.OrderedDict' objects}
1 0.000 0.000 0.000 0.000 {built-in method fromkeys}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:81(groups)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:551(__get_side_effect)
5 0.000 0.000 0.000 0.000 {method 'lower' of 'str' objects}
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:184(__len__)
1 0.000 0.000 0.000 0.000 {method 'translate' of 'bytearray' objects}
2 0.000 0.000 0.000 0.000 {method 'values' of 'mappingproxy' objects}
4 0.000 0.000 0.000 0.000 {built-in method builtins.iter}
2 0.000 0.000 0.000 0.000 {method 'end' of 're.Match' objects}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2657(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:62(_is_instance_mock)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2882(parameters)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_collections_abc.py:409(__subclasshook__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:453(_get_iscased)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1054(_try_iter)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:392(get_host_settings)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:365(auth_settings)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1397(<dictcomp>)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1083(_mock_check_sig)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:392(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1426(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:168(__setitem__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2569(default)
1 0.000 0.000 0.000 0.000 {method 'extend' of 'list' objects}
python-experimental runtime has been reduced to 32s
by not calling _from_openapi_data when creating dict properties and list items.
json_items=585025
37733256 function calls (35468148 primitive calls) in 32.357 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.052 0.052 32.357 32.357 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api/transaction_portfolios_api_endpoints/get_transactions.py:457(get_transactions)
1 0.001 0.001 32.304 32.304 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:800(deserialize)
1 0.024 0.024 31.988 31.988 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1994(_from_openapi_data)
1 0.037 0.037 31.963 31.963 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1349(_from_openapi_data)
3 1.804 0.601 25.631 8.544 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1259(__get_new_cls)
270019/1 1.213 0.000 21.561 21.561 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:943(_validate)
270006/1 2.671 0.000 20.030 20.030 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:907(_validate_args)
19/2 0.000 0.000 18.555 9.277 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:741(_validate)
2 0.078 0.039 17.001 8.500 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:709(_validate_items)
855032 4.433 0.000 9.769 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:64(update)
585027 1.785 0.000 5.408 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1197(_validate)
5470112 5.194 0.000 5.194 0.000 {method 'union' of 'set' objects}
585027/3 0.701 0.000 3.965 1.322 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1332(_get_new_instance_without_conversion)
270006/1 1.570 0.000 3.965 3.965 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1024(_get_properties)
2 0.018 0.009 3.965 1.982 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:770(_get_items)
585027/3 1.345 0.000 2.330 0.777 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1440(cast_to_allowed_types)
270006/1 0.293 0.000 2.330 2.330 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1479(<dictcomp>)
2 0.003 0.002 2.330 1.165 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1477(<listcomp>)
725027 0.436 0.000 1.530 0.000 {built-in method builtins.any}
585027 0.878 0.000 1.451 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1092(__get_simple_class)
9855705 1.439 0.000 1.439 0.000 {built-in method builtins.isinstance}
2465108/2450108 1.268 0.000 1.406 0.000 {built-in method builtins.hasattr}
1750081 0.442 0.000 1.045 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1289(<genexpr>)
585027 0.946 0.000 0.946 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:391(_validate_type)
1170051 0.839 0.000 0.839 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:78(__init__)
15002 0.044 0.000 0.790 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:634(_validate)
270006 0.586 0.000 0.627 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:855(_validate_arg_presence)
15002 0.030 0.000 0.570 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:622(_validate_format)
15002 0.058 0.000 0.538 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:23(func)
540012 0.504 0.000 0.504 0.000 {method 'items' of 'frozendict.frozendict' objects}
15002 0.072 0.000 0.463 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:555(parse_isodatetime)
580027 0.342 0.000 0.437 0.000 {built-in method builtins.sorted}
1050144 0.350 0.000 0.399 0.000 {built-in method builtins.getattr}
1 0.000 0.000 0.314 0.314 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:741(__deserialize_json)
1 0.000 0.000 0.305 0.305 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py:299(loads)
1 0.000 0.000 0.305 0.305 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py:332(decode)
1 0.305 0.305 0.305 0.305 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py:343(raw_decode)
15002 0.198 0.000 0.294 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:330(_parse_isotime)
20002 0.042 0.000 0.278 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:356(_validate_validations_pass)
1150047 0.260 0.000 0.260 0.000 {method 'items' of 'dict' objects}
580039 0.240 0.000 0.240 0.000 {method 'get' of 'dict' objects}
20002 0.063 0.000 0.236 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:324(_check_validations_for_types)
580040 0.213 0.000 0.213 0.000 {built-in method __new__ of type object at 0x108a77d40}
25000 0.116 0.000 0.208 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:404(_enum_by_value)
1320091 0.196 0.000 0.196 0.000 {method 'add' of 'set' objects}
20000 0.088 0.000 0.161 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:257(__check_numeric_validations)
580022 0.159 0.000 0.159 0.000 {method 'update' of 'dict' objects}
1170087 0.152 0.000 0.152 0.000 {built-in method builtins.issubclass}
585027 0.137 0.000 0.137 0.000 {method 'intersection' of 'set' objects}
580027 0.095 0.000 0.095 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1309(<lambda>)
720087/720085 0.093 0.000 0.093 0.000 {built-in method builtins.len}
15002 0.012 0.000 0.091 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:206(_parse_isodate)
15002 0.075 0.000 0.079 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:212(_parse_isodate_common)
480000 0.074 0.000 0.074 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:190(_additional_properties)
100006 0.046 0.000 0.064 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:118(__is_json_validation_enabled)
50000 0.061 0.000 0.061 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:447(_enum_value_to_name)
15002 0.048 0.000 0.052 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:383(_parse_tzstr)
280000 0.050 0.000 0.050 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1306(<genexpr>)
5000 0.006 0.000 0.046 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1252(_validate_enum_value)
240000 0.042 0.000 0.042 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/perpetual_property.py:80(value)
15004 0.028 0.000 0.028 0.000 {method 'match' of 're.Pattern' objects}
140000 0.019 0.000 0.019 0.000 {method 'pop' of 'set' objects}
20000 0.014 0.000 0.014 0.000 {method 'as_integer_ratio' of 'decimal.Decimal' objects}
75000 0.014 0.000 0.014 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:2056(log_cache_usage)
30004 0.011 0.000 0.011 0.000 {method 'group' of 're.Match' objects}
20000 0.009 0.000 0.009 0.000 {method 'isdisjoint' of 'set' objects}
5 0.009 0.002 0.009 0.002 {method 'decode' of 'bytes' objects}
15010 0.008 0.000 0.008 0.000 {method 'encode' of 'str' objects}
5000 0.004 0.000 0.004 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:471(__new__)
15002 0.004 0.000 0.004 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:26(<lambda>)
10000 0.003 0.000 0.003 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:134(transactionPrice)
10000 0.003 0.000 0.003 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:247(otcConfirmation)
10000 0.002 0.000 0.002 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:139(totalConsideration)
5047 0.001 0.000 0.001 0.000 {method 'append' of 'list' objects}
27 0.001 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:2042(get_new_class)
2 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:983(_get_child_mock)
2 0.000 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:432(serialize)
2 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2033(__init__)
2 0.000 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1395(__new__)
3 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1088(__call__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api/transaction_portfolios_api_endpoints/get_transactions.py:298(__new__)
4/3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:625(__getattr__)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1096(_mock_call)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1145(_execute_mock_call)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:513(__get_return_value)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2039(_mock_set_magics)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1071(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:145(__check_str_validations)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py:198(search)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:416(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py:289(_compile)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:485(_mock_add_spec)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:759(compile)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/coroutines.py:164(iscoroutinefunction)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:400(__new__)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:190(iscoroutinefunction)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:968(call_api)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:914(__call_api)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:172(_has_code_flag)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:937(parse)
9 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1001(_property_names)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api/transaction_portfolios_api_endpoints/get_transactions.py:324(__new__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:598(_code)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1099(_increment_mock_call)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:435(_parse_sub)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:3064(bind_partial)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:493(_parse)
160 0.000 0.000 0.000 0.000 {built-in method builtins.setattr}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2926(_bind)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:425(_serialize_simple)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:71(_compile)
160 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2104(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:255(_serialize_simple_tuple)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:201(_serialize_x)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/parse.py:819(quote)
15/12 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:730(__setattr__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:100(__serialize_str)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:276(_optimize_charset)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:536(_compile_info)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/parse.py:890(quote_from_bytes)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:81(ismethod)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/functools.py:420(_unwrap_partial)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:159(isfunction)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_collections_abc.py:932(update)
2 0.000 0.000 0.000 0.000 {built-in method builtins.dir}
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2400(__new__)
13 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:254(get)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:1164(_verify_typed_dict_inputs)
11 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:320(_get)
17 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:233(__next)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/abc.py:117(__instancecheck__)
3 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:215(add)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:411(_mk_bitmap)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:526(__set_return_value)
1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck}
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:174(getwidth)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:977(__and__)
4 0.000 0.000 0.000 0.000 {method 'rstrip' of 'bytes' objects}
52 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:996(_additional_properties)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:356(_check_and_set_parent)
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:164(__getitem__)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/abc.py:121(__subclasscheck__)
61 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2577(kind)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1391(__remove_unsets)
2/1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:562(__set_side_effect)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:342(_remove_empty_and_cast)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:443(host)
7 0.000 0.000 0.000 0.000 {method 'get' of 'frozendict.frozendict' objects}
9 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:461(_get_literal_prefix)
9 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:325(_set)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:413(<listcomp>)
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2432(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:358(__call__)
8 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:249(match)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:295(_class_escape)
28 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2565(name)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:224(__init__)
9 0.000 0.000 0.000 0.000 {method 'items' of 'mappingproxy' objects}
22 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects}
2 0.000 0.000 0.000 0.000 {method 'search' of 're.Pattern' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:62(_is_instance_mock)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:249(_compile_charset)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:404(get_host_from_settings)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:141(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:432(_uniq)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:172(append)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:423(_simple)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:1121(update_params_for_auth)
3 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}
1 0.000 0.000 0.000 0.000 <string>:2(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:75(_extract_mock)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:160(__len__)
5 0.000 0.000 0.000 0.000 {built-in method builtins.min}
5 0.000 0.000 0.000 0.000 {method 'find' of 'bytearray' objects}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:272(_is_magic)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:286(tell)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:152(__setitem__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:57(default)
8 0.000 0.000 0.000 0.000 {built-in method builtins.next}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:111(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:670(__new__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:921(fix_flags)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:538(__class__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:492(_get_charset_prefix)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:595(isstring)
8 0.000 0.000 0.000 0.000 {built-in method builtins.ord}
2 0.000 0.000 0.000 0.000 {method 'replace' of 'str' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:76(__init__)
1 0.000 0.000 0.000 0.000 {built-in method _sre.compile}
3 0.000 0.000 0.000 0.000 {method 'setdefault' of 'collections.OrderedDict' objects}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/versioned_resource_list_of_transaction.py:80(version)
5 0.000 0.000 0.000 0.000 {method 'lower' of 'str' objects}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:81(groups)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:551(__get_side_effect)
1 0.000 0.000 0.000 0.000 {built-in method fromkeys}
4 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:346(<genexpr>)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
1 0.000 0.000 0.000 0.000 {method 'translate' of 'bytearray' objects}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/versioned_resource_list_of_transaction.py:90(_items)
2 0.000 0.000 0.000 0.000 {method 'values' of 'mappingproxy' objects}
4 0.000 0.000 0.000 0.000 {built-in method builtins.iter}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2657(__init__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:184(__len__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_collections_abc.py:409(__subclasshook__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:365(auth_settings)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:453(_get_iscased)
2 0.000 0.000 0.000 0.000 {method 'end' of 're.Match' objects}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1393(<dictcomp>)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:392(get_host_settings)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1083(_mock_check_sig)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:168(__setitem__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2882(parameters)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:392(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1054(_try_iter)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1422(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2569(default)
1 0.000 0.000 0.000 0.000 {method 'extend' of 'list' objects}
.
----------------------------------------------------------------------
Ran 1 test in 32.458s
OK
trending in the right direction!
So I am not seeing any more performance improvements to make in python-experimental
The one that I did above got rid of extra calls to _from_openapi_data.
Casting to the allowed value types is done once for each json value location.
So now we validate each location in the json once, and make the new class for that location once. The new class stores all the schemas that passed validation.
New class generation is also cached by the way.
The number of items in your json payload is 585,025
We can see that the code is validating each location from:
585027 1.806 0.000 5.346 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1201(_validate)
Our qty count is two higher because the query params that the code input were also validated.
The improvements were merged into python-experimental in https://github.com/OpenAPITools/openapi-generator/pull/11517
Payload Size and Items
Payload Size: 13.8 mB Total Items: 585,025
Quantities of items by type:
- int: 0
- None: 0
- bool: 0
- list: 2
- float: 20,000
- dict: 270,006
- str: 295,017
Latest Runtime
Latest runtime is 29.3 seconds
Validation performance per location
Every python value: str/bool/int/float/None/dict/list in the json and enpoint parameters is a location The validation time per location is 30 seconds / 585,027 locations -> 0.00005127968 seconds / location which looks pretty fast to me With the vast majority of these locations 585,025 being in the json payload. Total time is a lot (~30s) due to the number of locations. Note: a location may be validated against multiple schemas.
json_items=585025
28582993 function calls (26317885 primitive calls) in 28.594 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.052 0.052 28.594 28.594 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api/transaction_portfolios_api_endpoints/get_transactions.py:457(get_transactions)
1 0.002 0.002 28.541 28.541 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:800(deserialize)
1 0.024 0.024 28.041 28.041 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1998(_from_openapi_data)
1 0.041 0.041 28.017 28.017 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1353(_from_openapi_data)
3 1.809 0.603 23.075 7.692 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1263(__get_new_cls)
270019/1 1.129 0.000 18.977 18.977 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:947(_validate)
270006/1 2.478 0.000 17.345 17.345 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:911(_validate_args)
19/2 0.000 0.000 15.954 7.977 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:745(_validate)
2 0.067 0.033 14.560 7.280 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:713(_validate_items)
855032 7.869 0.000 7.998 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:64(update)
585027 1.699 0.000 4.914 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1201(_validate)
585027/3 0.644 0.000 3.875 1.292 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1336(_get_new_instance_without_conversion)
270006/1 1.509 0.000 3.875 3.875 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1028(_get_properties)
2 0.018 0.009 3.874 1.937 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:774(_get_items)
725027 0.440 0.000 1.546 0.000 {built-in method builtins.any}
585027 0.801 0.000 1.356 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1096(__get_simple_class)
2465108/2450108 1.216 0.000 1.349 0.000 {built-in method builtins.hasattr}
1750081 0.446 0.000 1.057 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1293(<genexpr>)
585027/3 0.646 0.000 1.026 0.342 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1444(cast_to_allowed_types)
270006/1 0.252 0.000 1.026 1.026 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1453(<dictcomp>)
2 0.003 0.001 1.026 0.513 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1468(<listcomp>)
6450558 0.922 0.000 0.922 0.000 {built-in method builtins.isinstance}
1170051 0.789 0.000 0.789 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:82(__init__)
585027 0.742 0.000 0.742 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:395(_validate_type)
270006 0.702 0.000 0.739 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:859(_validate_arg_presence)
15002 0.041 0.000 0.726 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:638(_validate)
540012 0.583 0.000 0.583 0.000 {method 'items' of 'frozendict.frozendict' objects}
15002 0.028 0.000 0.517 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:626(_validate_format)
1 0.000 0.000 0.497 0.497 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:741(__deserialize_json)
15002 0.054 0.000 0.487 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:23(func)
1 0.000 0.000 0.486 0.486 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py:299(loads)
1 0.000 0.000 0.486 0.486 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py:332(decode)
1 0.486 0.486 0.486 0.486 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py:343(raw_decode)
580027 0.346 0.000 0.441 0.000 {built-in method builtins.sorted}
15002 0.064 0.000 0.416 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:559(parse_isodatetime)
1050144 0.329 0.000 0.374 0.000 {built-in method builtins.getattr}
15002 0.179 0.000 0.263 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:330(_parse_isotime)
20002 0.039 0.000 0.258 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:360(_validate_validations_pass)
580039 0.234 0.000 0.234 0.000 {method 'get' of 'dict' objects}
20002 0.059 0.000 0.220 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:328(_check_validations_for_types)
580040 0.215 0.000 0.215 0.000 {built-in method __new__ of type object at 0x101db6d40}
25000 0.111 0.000 0.199 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:408(_enum_by_value)
1320091 0.173 0.000 0.173 0.000 {method 'add' of 'set' objects}
1145047 0.168 0.000 0.168 0.000 {method 'items' of 'dict' objects}
580022 0.153 0.000 0.153 0.000 {method 'update' of 'dict' objects}
20000 0.079 0.000 0.150 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:261(__check_numeric_validations)
585027 0.137 0.000 0.137 0.000 {method 'intersection' of 'set' objects}
900083 0.119 0.000 0.119 0.000 {built-in method builtins.issubclass}
580027 0.095 0.000 0.095 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1313(<lambda>)
720087/720085 0.092 0.000 0.092 0.000 {built-in method builtins.len}
15002 0.014 0.000 0.082 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:206(_parse_isodate)
480000 0.070 0.000 0.070 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:190(_additional_properties)
15002 0.064 0.000 0.068 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:212(_parse_isodate_common)
100006 0.043 0.000 0.064 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:122(__is_json_validation_enabled)
50000 0.058 0.000 0.058 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:451(_enum_value_to_name)
280000 0.050 0.000 0.050 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1310(<genexpr>)
15002 0.041 0.000 0.045 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:383(_parse_tzstr)
5000 0.005 0.000 0.041 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1256(_validate_enum_value)
240000 0.038 0.000 0.038 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/perpetual_property.py:80(value)
15004 0.024 0.000 0.024 0.000 {method 'match' of 're.Pattern' objects}
140000 0.022 0.000 0.022 0.000 {method 'pop' of 'set' objects}
75000 0.013 0.000 0.013 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:2060(log_cache_usage)
20000 0.012 0.000 0.012 0.000 {method 'as_integer_ratio' of 'decimal.Decimal' objects}
5 0.011 0.002 0.011 0.002 {method 'decode' of 'bytes' objects}
30004 0.010 0.000 0.010 0.000 {method 'group' of 're.Match' objects}
15010 0.007 0.000 0.007 0.000 {method 'encode' of 'str' objects}
20000 0.007 0.000 0.007 0.000 {method 'isdisjoint' of 'set' objects}
5000 0.004 0.000 0.004 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:475(__new__)
15002 0.003 0.000 0.003 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:26(<lambda>)
10000 0.002 0.000 0.002 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:134(transactionPrice)
10000 0.002 0.000 0.002 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:247(otcConfirmation)
10000 0.002 0.000 0.002 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:139(totalConsideration)
5047 0.001 0.000 0.001 0.000 {method 'append' of 'list' objects}
27 0.001 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:2046(get_new_class)
2 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:983(_get_child_mock)
2 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2033(__init__)
2 0.000 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:432(serialize)
3 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1088(__call__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1399(__new__)
4/3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:625(__getattr__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api/transaction_portfolios_api_endpoints/get_transactions.py:298(__new__)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1096(_mock_call)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1145(_execute_mock_call)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:513(__get_return_value)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2039(_mock_set_magics)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1071(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:149(__check_str_validations)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:416(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:485(_mock_add_spec)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py:198(search)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py:289(_compile)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:759(compile)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/coroutines.py:164(iscoroutinefunction)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:400(__new__)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:190(iscoroutinefunction)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:968(call_api)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:914(__call_api)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:172(_has_code_flag)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:937(parse)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api/transaction_portfolios_api_endpoints/get_transactions.py:324(__new__)
9 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1005(_property_names)
160 0.000 0.000 0.000 0.000 {built-in method builtins.setattr}
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1099(_increment_mock_call)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:3064(bind_partial)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:435(_parse_sub)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2926(_bind)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:598(_code)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:493(_parse)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:71(_compile)
160 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2104(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:425(_serialize_simple)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:255(_serialize_simple_tuple)
15/12 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:730(__setattr__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:201(_serialize_x)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:276(_optimize_charset)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/parse.py:819(quote)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:100(__serialize_str)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:81(ismethod)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:536(_compile_info)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:159(isfunction)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/functools.py:420(_unwrap_partial)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/parse.py:890(quote_from_bytes)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_collections_abc.py:932(update)
2 0.000 0.000 0.000 0.000 {built-in method builtins.dir}
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2400(__new__)
13 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:254(get)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/abc.py:117(__instancecheck__)
11 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:320(_get)
17 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:233(__next)
1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:411(_mk_bitmap)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:1164(_verify_typed_dict_inputs)
61 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2577(kind)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:174(getwidth)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/abc.py:121(__subclasscheck__)
52 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1000(_additional_properties)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:526(__set_return_value)
3 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:215(add)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:977(__and__)
2/1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1395(__remove_unsets)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:443(host)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:562(__set_side_effect)
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:164(__getitem__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:342(_remove_empty_and_cast)
4 0.000 0.000 0.000 0.000 {method 'rstrip' of 'bytes' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:356(_check_and_set_parent)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:404(get_host_from_settings)
9 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
9 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:325(_set)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:413(<listcomp>)
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2432(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:295(_class_escape)
7 0.000 0.000 0.000 0.000 {method 'get' of 'frozendict.frozendict' objects}
28 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2565(name)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:358(__call__)
3 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}
22 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects}
9 0.000 0.000 0.000 0.000 {method 'items' of 'mappingproxy' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:224(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:432(_uniq)
8 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:249(match)
2 0.000 0.000 0.000 0.000 {method 'search' of 're.Pattern' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:249(_compile_charset)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:172(append)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:141(__init__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:1121(update_params_for_auth)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:75(_extract_mock)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:423(_simple)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:272(_is_magic)
1 0.000 0.000 0.000 0.000 <string>:2(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:57(default)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:286(tell)
5 0.000 0.000 0.000 0.000 {method 'find' of 'bytearray' objects}
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:538(__class__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:461(_get_literal_prefix)
5 0.000 0.000 0.000 0.000 {built-in method builtins.min}
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:152(__setitem__)
8 0.000 0.000 0.000 0.000 {built-in method builtins.next}
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:160(__len__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:921(fix_flags)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:670(__new__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:595(isstring)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:111(__init__)
8 0.000 0.000 0.000 0.000 {built-in method builtins.ord}
2 0.000 0.000 0.000 0.000 {method 'replace' of 'str' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:492(_get_charset_prefix)
4 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:346(<genexpr>)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:551(__get_side_effect)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/versioned_resource_list_of_transaction.py:80(version)
3 0.000 0.000 0.000 0.000 {method 'setdefault' of 'collections.OrderedDict' objects}
1 0.000 0.000 0.000 0.000 {built-in method fromkeys}
1 0.000 0.000 0.000 0.000 {built-in method _sre.compile}
5 0.000 0.000 0.000 0.000 {method 'lower' of 'str' objects}
2 0.000 0.000 0.000 0.000 {method 'values' of 'mappingproxy' objects}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:81(groups)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:76(__init__)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
4 0.000 0.000 0.000 0.000 {built-in method builtins.iter}
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/venv/lib/python3.9/site-packages/urllib3/_collections.py:184(__len__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2657(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/versioned_resource_list_of_transaction.py:90(_items)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:62(_is_instance_mock)
2 0.000 0.000 0.000 0.000 {method 'end' of 're.Match' objects}
1 0.000 0.000 0.000 0.000 {method 'translate' of 'bytearray' objects}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_collections_abc.py:409(__subclasshook__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2882(parameters)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:453(_get_iscased)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1083(_mock_check_sig)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:392(get_host_settings)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:392(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1397(<dictcomp>)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:365(auth_settings)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1426(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1054(_try_iter)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:168(__setitem__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2569(default)
1 0.000 0.000 0.000 0.000 {method 'extend' of 'list' objects}
.
----------------------------------------------------------------------
Ran 1 test in 29.327s
It may be possible to further improve python-experimental performance by caching the Schema._validate results:
@classmethod
+ @functools.cache
def _validate(cls, *args, _instantiation_metadata: typing.Optional[InstantiationMetadata] = None):
Which would require making the InstantiationMetadata hashable.
hi @spacether, were you able to progress this, is there anything we can do to help?
I posted the progress that I was able to make on this. Locations are validated in 51 microseconds on avg. If you want faster performance please write a PR with the suggested changes that I describe in https://github.com/OpenAPITools/openapi-generator/pull/11529
thanks Justin, apologies I misunderstood/misread the update
are these changes only applicable to the python-experimental version or are they also applicable to the python and python-legacy versions?
also, would there be a possibility to sponsor the work to bring implementation forward?
These updates only apply to python-experimental. Yes if you wanted to sponsor the work you could. Hmm it looks like our processing time of 51 microseconds is around 10X slower than similar to benchmarking done on json schema validations: https://dev.to/vearutop/benchmarking-correctness-and-performance-of-go-json-schema-validators-3247
Draft 7 Time/Op
name \ time/op santhosh-draft7.txt qri-draft7.txt xeipuuv-draft7.txt
[Geo mean] 2.66µs 4.03µs 4.92µs
@spacether @rizwansaeed
Just curious,
how did you set check_type=False?
I tried ... openapi-generator-cli-6.0.1.jar generate ... -g "python" ...--global-property check_type=false with no success.
( I'm approaching with the similar issue:
File "/usr/local/lib/python3.8/site-packages/someapi/model_utils.py", line 1595, in validate_and_convert_types
raise get_type_error(input_value, path_to_item, valid_classes,
someapi.exceptions.ApiTypeError: Invalid type for variable '0'. Required value type is int and passed type was str at ['somename']['values'][0]
)
@0x7162 your issue is different Your issue is that the server is sending data that does not conform to the spec. How about updating your spec to be consistent with what the server is doing? check_type is an input argument in the python generated client code only. You use it when calling an endpoint.
With the latest updated client, run time went down to 24s This is the same runtime as the python generator but python-experimental's validation is more thorough.
This 5s speed increase happened when I aded code that converted all types in cast_to_allowed values, so that later when the valid schemas are accumulated, one just needs to use some_schema = type(payload) and then add that some_schema to the list of validated schemas.
The only remaining way that I know to speed things up is to add code that detects duplicate values that are being validated against the same schema. So caching validation results.
36043317 function calls (33208185 primitive calls) in 24.067 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 24.067 24.067 /Users/justinblack/programming/openapiperf/python/luisd/luisd/paths/api_transactionportfolios_scope_code_transactions_3/get.py:555(get_transactions)
1 0.035 0.035 24.067 24.067 /Users/justinblack/programming/openapiperf/python/luisd/luisd/paths/api_transactionportfolios_scope_code_transactions_3/get.py:462(_get_transactions)
1 0.000 0.000 24.031 24.031 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:842(deserialize)
1 0.053 0.053 23.592 23.592 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:2083(_from_openapi_data)
1 0.041 0.041 23.538 23.538 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1382(_from_openapi_data)
3 1.504 0.501 18.949 6.316 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1301(__get_new_cls)
585027/3 0.652 0.000 14.574 4.858 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:531(_validate)
270019/1 0.919 0.000 14.557 14.557 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1092(_validate)
270006/1 2.682 0.000 14.347 14.347 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1056(_validate_args)
19/2 0.000 0.000 14.090 7.045 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:885(_validate)
2 0.033 0.016 13.854 6.927 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:852(_validate_items)
585027/3 1.245 0.000 3.126 1.042 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1359(_get_new_instance_without_conversion)
270006/1 0.989 0.000 3.126 3.126 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1178(_get_properties)
2 0.010 0.005 3.125 1.563 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:920(_get_items)
855035 2.362 0.000 2.484 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:69(update)
585027 1.021 0.000 2.455 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1246(_validate)
585027 0.981 0.000 1.873 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:125(validation_ran_earlier)
2925140 1.462 0.000 1.782 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:134(path_to_item)
725027 0.459 0.000 1.588 0.000 {built-in method builtins.any}
585027/3 0.685 0.000 1.424 0.475 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1486(cast_to_allowed_types)
270006/1 0.505 0.000 1.424 1.424 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1524(<dictcomp>)
2 0.004 0.002 1.423 0.712 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1543(<listcomp>)
1750081 0.447 0.000 1.009 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1345(<genexpr>)
585027 0.389 0.000 0.704 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1283(__process_schema_classes)
5950290 0.687 0.000 0.687 0.000 {method 'get' of 'frozendict.frozendict' objects}
585029 0.370 0.000 0.677 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:89(__new__)
270006 0.601 0.000 0.639 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1004(_validate_arg_presence)
15002 0.032 0.000 0.591 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:769(_validate)
1265054 0.572 0.000 0.580 0.000 {built-in method builtins.hasattr}
20002 0.037 0.000 0.557 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:452(_validate)
1170056 0.390 0.000 0.544 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:150(validated_path_to_schemas)
1165069 0.507 0.000 0.507 0.000 {built-in method __new__ of type object at 0x1055b5d40}
15002 0.025 0.000 0.484 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:757(_validate_format)
15002 0.050 0.000 0.456 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:23(func)
585027 0.338 0.000 0.439 0.000 {built-in method builtins.sorted}
1 0.001 0.001 0.438 0.438 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:783(__deserialize_json)
1 0.000 0.000 0.437 0.437 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py:299(loads)
20002 0.037 0.000 0.436 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:358(_check_validations_for_types)
1 0.000 0.000 0.428 0.428 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py:332(decode)
1 0.428 0.428 0.428 0.428 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py:343(raw_decode)
15002 0.061 0.000 0.390 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:686(parse_isodatetime)
20000 0.095 0.000 0.384 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:292(__check_numeric_validations)
1050144 0.307 0.000 0.350 0.000 {built-in method builtins.getattr}
2485319 0.334 0.000 0.334 0.000 {built-in method builtins.isinstance}
1170070 0.333 0.000 0.333 0.000 {method 'get' of 'dict' objects}
685032 0.233 0.000 0.311 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:142(configuration)
585026 0.223 0.000 0.293 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:138(from_server)
585029 0.195 0.000 0.260 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:146(seen_classes)
15002 0.170 0.000 0.250 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:330(_parse_isotime)
20000 0.183 0.000 0.183 0.000 {method 'isdisjoint' of 'set' objects}
1325091 0.173 0.000 0.173 0.000 {method 'add' of 'set' objects}
1120050 0.152 0.000 0.152 0.000 {method 'items' of 'dict' objects}
585027 0.144 0.000 0.144 0.000 {method 'intersection' of 'set' objects}
1040083 0.137 0.000 0.137 0.000 {built-in method builtins.issubclass}
420000 0.100 0.000 0.120 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1297(<genexpr>)
585027 0.101 0.000 0.101 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1353(<lambda>)
720088/720086 0.098 0.000 0.098 0.000 {built-in method builtins.len}
540012 0.090 0.000 0.090 0.000 {method 'items' of 'frozendict.frozendict' objects}
15002 0.010 0.000 0.073 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:206(_parse_isodate)
480000 0.068 0.000 0.068 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:195(_additional_properties)
15002 0.060 0.000 0.064 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:212(_parse_isodate_common)
100006 0.043 0.000 0.061 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:156(__is_json_validation_enabled)
5000 0.011 0.000 0.045 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:582(_validate)
15002 0.040 0.000 0.043 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:383(_parse_tzstr)
240000 0.037 0.000 0.037 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/perpetual_property.py:85(value)
15004 0.022 0.000 0.022 0.000 {method 'match' of 're.Pattern' objects}
10000 0.020 0.000 0.020 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:569(_enum_value_to_name)
140000 0.019 0.000 0.019 0.000 {method 'pop' of 'set' objects}
20000 0.013 0.000 0.013 0.000 {method 'as_integer_ratio' of 'decimal.Decimal' objects}
3 0.009 0.003 0.009 0.003 {method 'decode' of 'bytes' objects}
30004 0.009 0.000 0.009 0.000 {method 'group' of 're.Match' objects}
15006 0.007 0.000 0.007 0.000 {method 'encode' of 'str' objects}
5000 0.004 0.000 0.004 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:382(__new__)
15002 0.003 0.000 0.003 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/dateutil/parser/isoparser.py:26(<lambda>)
10000 0.002 0.000 0.002 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:139(transactionPrice)
10000 0.002 0.000 0.002 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:252(otcConfirmation)
10000 0.002 0.000 0.002 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/transaction.py:144(totalConsideration)
5047 0.001 0.000 0.001 0.000 {method 'append' of 'list' objects}
27 0.001 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:2094(get_new_class)
2 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:983(_get_child_mock)
2 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2033(__init__)
2 0.000 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:418(serialize)
3 0.000 0.000 0.001 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1088(__call__)
2 0.000 0.000 0.001 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1435(__new__)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1096(_mock_call)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1145(_execute_mock_call)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:513(__get_return_value)
4/3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:625(__getattr__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/paths/api_transactionportfolios_scope_code_transactions_3/get.py:305(__new__)
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2039(_mock_set_magics)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1071(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:183(__check_str_validations)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:416(__init__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:485(_mock_add_spec)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py:198(search)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py:289(_compile)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:759(compile)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/coroutines.py:164(iscoroutinefunction)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:400(__new__)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:190(iscoroutinefunction)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:172(_has_code_flag)
160 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2104(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:937(parse)
9 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1155(_property_names)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/paths/api_transactionportfolios_scope_code_transactions_3/get.py:331(__new__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:1012(call_api)
160 0.000 0.000 0.000 0.000 {built-in method builtins.setattr}
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:970(__call_api)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1099(_increment_mock_call)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:3064(bind_partial)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:598(_code)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:435(_parse_sub)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2926(_bind)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:493(_parse)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:71(_compile)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:406(_serialize_simple)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:249(serialize_simple)
15/12 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:730(__setattr__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:153(ref6570_expansion)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:276(_optimize_charset)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:123(__ref6570_item_value)
2 0.000 0.000 0.000 0.000 {built-in method builtins.dir}
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:81(ismethod)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/parse.py:819(quote)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_collections_abc.py:932(update)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:159(isfunction)
48 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/functools.py:420(_unwrap_partial)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:536(_compile_info)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/parse.py:890(quote_from_bytes)
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2400(__new__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/abc.py:117(__instancecheck__)
3 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/urllib3/_collections.py:215(add)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:411(_mk_bitmap)
13 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:254(get)
1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:977(__and__)
11 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:320(_get)
17 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:233(__next)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:562(__set_side_effect)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/abc.py:121(__subclasscheck__)
2/1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:174(getwidth)
61 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2577(kind)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:526(__set_return_value)
2/1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}
52 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1150(_additional_properties)
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:164(__getitem__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py:244(detect_encoding)
2 0.000 0.000 0.000 0.000 {method 'rstrip' of 'bytes' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:432(_uniq)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:356(_check_and_set_parent)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:443(host)
10 0.000 0.000 0.000 0.000 {built-in method builtins.next}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:1195(_verify_typed_dict_inputs)
9 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
10 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:2432(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1431(__remove_unsets)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:413(<listcomp>)
9 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:325(_set)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:358(__call__)
28 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2565(name)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:295(_class_escape)
8 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:249(match)
2 0.000 0.000 0.000 0.000 {method 'search' of 're.Pattern' objects}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:224(__init__)
22 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects}
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:404(get_host_from_settings)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:249(_compile_charset)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:758(content_type_is_json)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:172(append)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/urllib3/_collections.py:141(__init__)
9 0.000 0.000 0.000 0.000 {method 'items' of 'mappingproxy' objects}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:98(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:423(_simple)
1 0.000 0.000 0.000 0.000 <string>:2(__init__)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:1149(update_params_for_auth)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:75(_extract_mock)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:272(_is_magic)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/types.py:171(__get__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:56(default)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:286(tell)
5 0.000 0.000 0.000 0.000 {method 'find' of 'bytearray' objects}
5 0.000 0.000 0.000 0.000 {built-in method builtins.min}
4 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:160(__len__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:461(_get_literal_prefix)
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/urllib3/_collections.py:152(__setitem__)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:538(__class__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:670(__new__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:921(fix_flags)
3 0.000 0.000 0.000 0.000 {method 'startswith' of 'bytes' objects}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:111(__init__)
8 0.000 0.000 0.000 0.000 {built-in method builtins.ord}
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:76(__init__)
2 0.000 0.000 0.000 0.000 {method 'replace' of 'str' objects}
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:595(isstring)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:492(_get_charset_prefix)
2 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}
3 0.000 0.000 0.000 0.000 {method 'setdefault' of 'collections.OrderedDict' objects}
1 0.000 0.000 0.000 0.000 {built-in method _sre.compile}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:111(__next__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:81(groups)
1 0.000 0.000 0.000 0.000 {built-in method fromkeys}
2 0.000 0.000 0.000 0.000 {method 'values' of 'mappingproxy' objects}
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:551(__get_side_effect)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2657(__init__)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
5 0.000 0.000 0.000 0.000 {method 'lower' of 'str' objects}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/versioned_resource_list_of_transaction.py:85(version)
2 0.000 0.000 0.000 0.000 {method 'update' of 'dict' objects}
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/venv/lib/python3.9/site-packages/urllib3/_collections.py:184(__len__)
4 0.000 0.000 0.000 0.000 {built-in method builtins.iter}
1 0.000 0.000 0.000 0.000 {method 'translate' of 'bytearray' objects}
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/model/versioned_resource_list_of_transaction.py:95(_items)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:62(_is_instance_mock)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_collections_abc.py:409(__subclasshook__)
2 0.000 0.000 0.000 0.000 {method 'end' of 're.Match' objects}
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:392(get_host_settings)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2882(parameters)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/enum.py:792(value)
3 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1083(_mock_check_sig)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/api_client.py:149(to_dict)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_compile.py:453(_get_iscased)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1433(<dictcomp>)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:1054(_try_iter)
1 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects}
1 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/configuration.py:365(auth_settings)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/inspect.py:2569(default)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/mock.py:392(__init__)
2 0.000 0.000 0.000 0.000 /Users/justinblack/programming/openapiperf/python/luisd/luisd/schemas.py:1468(__init__)
1 0.000 0.000 0.000 0.000 /usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sre_parse.py:168(__setitem__)
1 0.000 0.000 0.000 0.000 {method 'upper' of 'str' objects}
1 0.000 0.000 0.000 0.000 {method 'extend' of 'list' objects}
.
----------------------------------------------------------------------
Ran 1 test in 24.745s