openapi-generator icon indicating copy to clipboard operation
openapi-generator copied to clipboard

[BUG] Slow deserialisation into objects in generated python sdk

Open rizwansaeed opened this issue 4 years ago • 15 comments

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?

rizwansaeed avatar Feb 02 '22 12:02 rizwansaeed

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.

spacether avatar Feb 03 '22 15:02 spacether

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?

rizwansaeed avatar Feb 03 '22 19:02 rizwansaeed

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.

MikeMcGarry avatar Feb 04 '22 01:02 MikeMcGarry

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}

spacether avatar Feb 04 '22 04:02 spacether

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

spacether avatar Feb 04 '22 13:02 spacether

trending in the right direction!

rizwansaeed avatar Feb 04 '22 13:02 rizwansaeed

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

spacether avatar Feb 04 '22 15:02 spacether

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.

spacether avatar Feb 04 '22 16:02 spacether

hi @spacether, were you able to progress this, is there anything we can do to help?

rizwansaeed avatar Mar 30 '22 11:03 rizwansaeed

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

spacether avatar Mar 30 '22 14:03 spacether

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?

rizwansaeed avatar Mar 30 '22 14:03 rizwansaeed

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 avatar Mar 30 '22 14:03 spacether

@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 avatar Jul 29 '22 00:07 0x7162

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

spacether avatar Jul 29 '22 01:07 spacether

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

spacether avatar Aug 04 '22 23:08 spacether