pynguin 0.43.0__tar.gz → 0.44.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pynguin-0.43.0 → pynguin-0.44.0}/PKG-INFO +27 -11
- {pynguin-0.43.0 → pynguin-0.44.0}/README.md +5 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/pyproject.toml +26 -32
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/__init__.py +27 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/__main__.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/__version__.py +1 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/analyses/constants.py +2 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/analyses/module.py +264 -75
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/analyses/modulecomplexity.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/analyses/seeding.py +5 -15
- pynguin-0.44.0/src/pynguin/analyses/string_subtypes.py +166 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/analyses/syntaxtree.py +12 -21
- pynguin-0.44.0/src/pynguin/analyses/type_inference.py +319 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/analyses/typesystem.py +303 -85
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/assertion.py +2 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/assertion_to_ast.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/assertion_trace.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/assertiongenerator.py +13 -107
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/assertiontraceobserver.py +8 -11
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/llmassertiongenerator.py +0 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/controller.py +0 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/mutators.py +2 -7
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/operators/__init__.py +10 -27
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/operators/arithmetic.py +1 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/operators/base.py +2 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/operators/decorator.py +1 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/operators/inheritance.py +8 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/operators/logical.py +2 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/operators/loop.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/operators/misc.py +6 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/strategies.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/transformer.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/cli.py +26 -7
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/configuration.py +157 -11
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/abstractmosaalgorithm.py +1 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/archive.py +2 -7
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/dynamosaalgorithm.py +34 -7
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/generationalgorithm.py +1 -7
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/llmosalgorithm.py +3 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/mioalgorithm.py +0 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/mosaalgorithm.py +0 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/randomalgorithm.py +1 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/randomsearchalgorithm.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/wholesuitealgorithm.py +1 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/chromosome.py +18 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/chromosomefactory.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/chromosomevisitor.py +1 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/computations.py +22 -11
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/coveragegoals.py +1 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/generationalgorithmfactory.py +21 -29
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/llmtestsuitechromosomefactory.py +0 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/operators/comparator.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/operators/crossover.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/operators/ranking.py +3 -10
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/operators/selection.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/postprocess.py +45 -25
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/searchobserver.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/stoppingcondition.py +9 -15
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/testcasechromosome.py +4 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/testcasechromosomefactory.py +0 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/testcasefactory.py +0 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/testsuitechromosome.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/testsuitechromosomefactory.py +0 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/generator.py +104 -67
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/__init__.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/controlflow.py +4 -20
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/machinery.py +40 -22
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/tracer.py +24 -36
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/transformer.py +575 -31
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/version/__init__.py +8 -10
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/version/common.py +5 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/version/python3_10.py +106 -48
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/version/python3_11.py +49 -38
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/version/python3_12.py +35 -35
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/instrumentation/version/python3_13.py +59 -40
- pynguin-0.44.0/src/pynguin/instrumentation/version/python3_14.py +314 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/helpers/testcasereferencecopier.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/llmagent.py +97 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/llmtestcasehandler.py +2 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/parsing/astscoping.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/parsing/deserializer.py +18 -17
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/parsing/helpers.py +14 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/parsing/rewriter.py +60 -19
- pynguin-0.44.0/src/pynguin/large_language_model/parsing/type_str_parser.py +182 -0
- pynguin-0.44.0/src/pynguin/large_language_model/prompts/localsearchprompt.py +69 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/prompts/testcasegenerationprompt.py +2 -1
- pynguin-0.44.0/src/pynguin/large_language_model/prompts/typeinferenceprompt.py +201 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/prompts/uncoveredtargetsprompt.py +3 -3
- pynguin-0.44.0/src/pynguin/master_worker/__init__.py +7 -0
- pynguin-0.44.0/src/pynguin/master_worker/client.py +104 -0
- pynguin-0.44.0/src/pynguin/master_worker/master.py +214 -0
- pynguin-0.44.0/src/pynguin/master_worker/worker.py +142 -0
- pynguin-0.44.0/src/pynguin/resources/fans/__init__.py +7 -0
- pynguin-0.44.0/src/pynguin/resources/fans/camel_case.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/colour.fan +9 -0
- pynguin-0.44.0/src/pynguin/resources/fans/csv.fan +24 -0
- pynguin-0.44.0/src/pynguin/resources/fans/delimited.fan +13 -0
- pynguin-0.44.0/src/pynguin/resources/fans/email.fan +18 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/__init__.py +7 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/camel_case.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/colour.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/csv.fan +12 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/delimited.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/email.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/ipv4.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/standard_date.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/unix_path.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/faker/xml.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/ipv4.fan +11 -0
- pynguin-0.44.0/src/pynguin/resources/fans/numeric.fan +14 -0
- pynguin-0.44.0/src/pynguin/resources/fans/standard_date.fan +24 -0
- pynguin-0.44.0/src/pynguin/resources/fans/unix_path.fan +14 -0
- pynguin-0.44.0/src/pynguin/resources/fans/xml.fan +24 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/slicer/dynamicslicer.py +27 -27
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/slicer/executionflowbuilder.py +14 -19
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/slicer/stack/stacksimulation.py +2 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/slicer/statementslicingobserver.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/defaulttestcase.py +0 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/execution.py +101 -117
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/export.py +9 -2
- pynguin-0.44.0/src/pynguin/testcase/llmlocalsearch.py +230 -0
- pynguin-0.44.0/src/pynguin/testcase/localsearch.py +304 -0
- pynguin-0.44.0/src/pynguin/testcase/localsearchobjective.py +143 -0
- pynguin-0.44.0/src/pynguin/testcase/localsearchstatement.py +1493 -0
- pynguin-0.44.0/src/pynguin/testcase/localsearchtimer.py +42 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/statement.py +432 -35
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/statement_to_ast.py +25 -31
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/testcase.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/testcase_to_ast.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/testcasevisitor.py +1 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/testfactory.py +173 -20
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/variablereference.py +3 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/ast_util.py +0 -1
- pynguin-0.44.0/src/pynguin/utils/configuration_writer.py +241 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/controlflowdistance.py +1 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/exceptions.py +4 -8
- pynguin-0.44.0/src/pynguin/utils/execution_recorder.py +96 -0
- pynguin-0.44.0/src/pynguin/utils/fandango_faker_utils.py +43 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/generic/genericaccessibleobject.py +17 -13
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/llm.py +9 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/mutation_utils.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/namingscope.py +9 -10
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/orderedset.py +2 -12
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/pynguinml/ml_parsing_utils.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/pynguinml/ml_testfactory_utils.py +4 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/pynguinml/ml_testing_resources.py +14 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/pynguinml/mlparameter.py +0 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/randomness.py +49 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/report.py +3 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/statistics/outputvariablefactory.py +2 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/statistics/runtimevariable.py +64 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/statistics/statisticsbackend.py +2 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/statistics/statisticsobserver.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/statistics/stats.py +25 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/type_utils.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/typeevalpy_json_schema.py +18 -22
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/typetracing.py +85 -59
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/analyses/test_constants.py +6 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/analyses/test_initialpopulationseeding.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/analyses/test_module.py +40 -33
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/analyses/test_modulecomplexity.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/analyses/test_seeding.py +0 -1
- pynguin-0.44.0/tests/analyses/test_string_subtypes.py +125 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/analyses/test_syntaxtree.py +216 -8
- pynguin-0.44.0/tests/analyses/test_type_inference.py +124 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/analyses/test_typesystem.py +70 -40
- pynguin-0.44.0/tests/analyses/test_typesystem_string_subtypes.py +56 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/operators/test_arithmetic.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/operators/test_exception.py +1 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/operators/test_inheritance.py +1 -7
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/operators/test_logical.py +0 -10
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/operators/test_loop.py +5 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/operators/test_misc.py +35 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/test_controller.py +1 -7
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/test_mutators.py +7 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/test_strategies.py +11 -7
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/test_assertion.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/test_assertion_generation_integration.py +7 -17
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/test_assertion_to_ast.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/test_assertion_trace.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/test_assertiontraceobserver.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/test_llmassertiongenerator.py +6 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/conftest.py +33 -26
- pynguin-0.44.0/tests/fixtures/examples/type_tracing/string_subtype.py +10 -0
- pynguin-0.44.0/tests/fixtures/instrumentation/covered_branches.py +95 -0
- pynguin-0.44.0/tests/fixtures/instrumentation/covered_classes.py +18 -0
- pynguin-0.44.0/tests/fixtures/instrumentation/covered_functions.py +28 -0
- pynguin-0.44.0/tests/fixtures/instrumentation/covered_lines.py +65 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/linecoverage/artificial_none.py +5 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/test_archive.py +6 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/test_dynamosaalgorithm.py +14 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/test_integration_mosaalgorithm.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/test_integration_varioussearchalgorithms.py +0 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/test_llmosalgorithm.py +2 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/test_mioalgorithm.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/test_mosaalgorithm.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/test_randomalgorithm.py +2 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/ranking/test_rankingfunction.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/selection/test_selection.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/selection/test_tournamentselection.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/test_dominancecomparator.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/test_coverageplateaustoppingcondition.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/test_maxcoveragestoppingcondition.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/test_maxtimestoppingcondition.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/test_minimumcoverageplateaustoppingcondition.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_chromosome.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_chromosomefactory.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_computations.py +2 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_computations_cache.py +46 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_computations_fitness_utilities.py +9 -11
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_coveragegoals.py +23 -10
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_generationalgorithmfactory.py +9 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_llmtestsuitechromosomefactory.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_postprocess.py +136 -52
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_testcasechromosome.py +2 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/instrumentation/test_adapters.py +99 -96
- pynguin-0.44.0/tests/instrumentation/test_ast_info.py +315 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/instrumentation/test_cfg.py +223 -6
- pynguin-0.44.0/tests/instrumentation/test_controldependencegraph.py +507 -0
- pynguin-0.44.0/tests/instrumentation/test_machinery.py +124 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/instrumentation/test_programgraph.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/instrumentation/test_tracer.py +13 -12
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/instrumentation/test_version.py +12 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/helpers/test_testcasereferencecopier.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/parsing/test_astscoping.py +5 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/parsing/test_helpers.py +18 -9
- pynguin-0.44.0/tests/large_language_model/parsing/test_type_str_parser.py +111 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/prompts/test_testcasegenerationprompt.py +1 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/prompts/test_uncovered_targets_prompt.py +5 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/test_caching.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/test_llm_caching.py +1 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/test_llm_deserializer.py +11 -18
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/test_llmagent.py +6 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/test_llmagent_extended.py +100 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/test_llmtestcasehandler.py +107 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/test_llmtestcasehandler_coverage.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/test_rewriter.py +8 -3
- pynguin-0.44.0/tests/master_worker/__init__.py +7 -0
- pynguin-0.44.0/tests/master_worker/test_client.py +139 -0
- pynguin-0.44.0/tests/master_worker/test_master.py +113 -0
- pynguin-0.44.0/tests/master_worker/test_worker.py +146 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/slicer/test_assertionslicer.py +3 -7
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/slicer/test_dependencies.py +79 -51
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/slicer/test_expected_failures.py +128 -51
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/slicer/test_language_features.py +178 -80
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/slicer/test_statementslicer.py +4 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/slicer/util.py +23 -18
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/test___main__.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/test_cli.py +73 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/test_generator.py +20 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_executioncontext.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_executiontrace.py +1 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_moduleprovider.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_subprocesstestcaseexecutor.py +2 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_subprocesstestcaseexecutor_differential.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_subprocesstestcaseexecutor_integration.py +2 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_testcaseexecutor_integration.py +3 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_typetracing.py +8 -10
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/export/conftest.py +7 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/export/test_export.py +28 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/statements/test_assignmentstatement.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/statements/test_collectionstatements.py +24 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/statements/test_fieldstatement.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/statements/test_parameterizedstatements.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/statements/test_primitivestatements.py +155 -13
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/test_ast_assign_statement.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/test_benchmark.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/test_defaulttestcase.py +0 -1
- pynguin-0.44.0/tests/testcase/test_llmlocalsearch.py +77 -0
- pynguin-0.44.0/tests/testcase/test_localsearch.py +1366 -0
- pynguin-0.44.0/tests/testcase/test_localsearchtimer.py +28 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/test_statement_to_ast.py +5 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/test_testcase_integration.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/test_testcase_to_ast_integration.py +0 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/test_testfactory.py +59 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/variable/test_variablereference.py +1 -3
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testutils.py +9 -9
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/generic/test_genericaccessibleobject.py +8 -8
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/pynguinml/test_ml_parsing_utils.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/pynguinml/test_ml_testfactory_utils.py +2 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/pynguinml/test_ml_testing_resources.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/pynguinml/test_mlparameter.py +1 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/pynguinml/test_pynguinml_integration.py +3 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/stats/test_outputvariablefactory.py +1 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/stats/test_searchstatistics.py +5 -5
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/stats/test_statistics.py +0 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/stats/test_statisticsbackend.py +5 -4
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_configuration_writer.py +423 -38
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_controlflowdistance.py +2 -6
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_exceptions.py +5 -3
- pynguin-0.44.0/tests/utils/test_execution_recorder.py +78 -0
- pynguin-0.44.0/tests/utils/test_fandango_faker_utils.py +33 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_namingscope.py +1 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_orderedset.py +1 -2
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_randomness.py +47 -1
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_report.py +13 -20
- pynguin-0.44.0/tests/utils/test_string_subtype_integration.py +50 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_type_utils.py +18 -17
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_typeevalpy_json_schema.py +24 -27
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_typetracing.py +37 -3
- pynguin-0.43.0/src/pynguin/utils/configuration_writer.py +0 -126
- pynguin-0.43.0/tests/instrumentation/test_controldependencegraph.py +0 -241
- pynguin-0.43.0/tests/instrumentation/test_machinery.py +0 -52
- {pynguin-0.43.0 → pynguin-0.44.0}/LICENSE.rst +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/LICENSES/Apache-2.0.txt +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/LICENSES/BSD-2-Clause.txt +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/LICENSES/CC-BY-4.0.txt +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/LICENSES/CC0-1.0.txt +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/LICENSES/MIT.txt +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/analyses/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/assertion/mutation_analysis/operators/exception.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/algorithms/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/ga/operators/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/caching.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/helpers/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/parsing/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/prompts/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/prompts/assertiongenerationprompt.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/large_language_model/prompts/prompt.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/resources/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/resources/coverage-template.html +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/slicer/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/slicer/executedinstruction.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/slicer/stack/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/testcase/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/atomicinteger.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/collection_utils.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/generic/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/mirror.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/pynguinml/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/pynguinml/np_rng.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/src/pynguin/utils/statistics/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/analyses/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/analyses/test_staticconstantseeding.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/operators/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/mutation_analysis/operators/test_decorator.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/assertion/test_assertiongenerator.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/accessibles/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/accessibles/accessible.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/branchcoverage/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/branchcoverage/nestedbranches.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/branchcoverage/nobranches.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/branchcoverage/simplenesting.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/branchcoverage/singlebranches.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/branchcoverage/twomethodsinglebranches.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/c/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/c/my_ctypes.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/abstract.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/alias_module.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/async_class_gen.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/async_class_method.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/async_func.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/async_gen.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/attributes.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/blacklist.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/blacklist_transitive.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/comments.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/complex_dependencies.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/complex_dependency.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/conditional_import.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/dependency.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/diamond_bottom.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/diamond_left.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/diamond_right.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/diamond_top.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/enums.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/import_dependency.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/inheritance.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/lambda.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/nested_functions.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/no_any_annotations.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/no_dependencies.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/overridden_inherited_methods.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/simple_dependencies.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/typing_parameters.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/cluster/uses_async_dependency.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/crash/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/crash/partly_crashing.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/crash/seg_fault.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/duckmock/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/duckmock/complex.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/errors/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/errors/import_error.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/assertions.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/basket.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/calculator.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/calculator_simple.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/collections.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/difficult.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/dummies.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/dynamosa_example.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/enums.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/exceptions.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/flaky.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/impossible.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/inheritance.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/loop.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/module_alias.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/monkey.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/nested.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/objects.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/private_methods.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/queue.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/simple.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/triangle.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/type_inference.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/type_tracing/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/type_tracing/geometry.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/type_tracing/invoice.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/type_tracing/large_test_cluster.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/examples/type_tracing/mixed.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/grammar/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/grammar/parameters.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/instrumentation/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/instrumentation/comparison.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/instrumentation/inherited.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/instrumentation/mixed.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/instrumentation/simple.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/linecoverage/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/linecoverage/emptyfile.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/linecoverage/exception.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/linecoverage/list.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/linecoverage/plus.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/linecoverage/setter_getter.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/mutation/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/mutation/exception.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/mutation/expected.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/mutation/mutation.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/mutation/timeout.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/programgraph/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/programgraph/samples.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/programgraph/whileloop.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/programgraph/yield_fun.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/regression/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/regression/argparse_sys_exit.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/regression/custom_error.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/regression/not_main.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/dynamicseeding/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/dynamicseeding/dynamicseedingdummies.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/dummycontainer.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/assertseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/classseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/collfuncseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/collseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/nestedseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/notknowncall_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/notprimseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/primitiveseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/triangleseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/wrongassignseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/wrongfunctionnameseed_test_.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/staticconstantseeding/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/staticconstantseeding/dummy/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/staticconstantseeding/dummy/dummy.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/seeding/staticconstantseeding/dummy/empty.so +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/attribute_dependencies.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/closure.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/generator.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/immutable_attribute_dependency.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/import_star_def.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/import_star_main.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/partial_cover_dependency.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/simple_call.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/slicer/simple_call_arg.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/test.conf +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/test.conf.license +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/tests/typeinference/test_stubstrategy.pyi +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/type_tracing/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/type_tracing/guess_params.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/type_tracing/return_types.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/type_tracing/union_type.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/types/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/types/outside.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/types/subtyping.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/fixtures/types/symbols.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/algorithms/test_generationalgorithm.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/crossover/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/crossover/test_singlepointrelativecrossover.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/ranking/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/selection/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/selection/test_rankselection.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/operators/test_preferencesortingcomparator.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/test_maxiterationsstoppingcondition.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/test_maxmemorystoppingcondition.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/test_maxstatementstoppingcondition.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/test_maxtestsstoppingcondition.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/stoppingconditions/test_stoppingcondition.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_testcasefactory.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/ga/test_testsuitechromosome.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/instrumentation/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/prompts/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/large_language_model/prompts/test_assertiongenerationprompt.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/slicer/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_executedinstruction.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_executionmocking.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/execution/test_executionresult.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/export/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/statements/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/testcase/variable/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/generic/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/pynguinml/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/pynguinml/test_np_rng.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/stats/__init__.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/stats/test_runtimevariable.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_atomicinteger.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_collection_utils.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_llm.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_mirror.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/test_mutation_utils.py +0 -0
- {pynguin-0.43.0 → pynguin-0.44.0}/tests/utils/utils.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pynguin
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.44.0
|
|
4
4
|
Summary: Pynguin is a tool for automated unit test generation for Python
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: unit test,random testing,search based,test generation
|
|
7
7
|
Author: Stephan Lukasczyk
|
|
8
8
|
Author-email: stephan@pynguin.eu
|
|
9
|
-
Requires-Python: >=3.10,<3.
|
|
9
|
+
Requires-Python: >=3.10,<3.15
|
|
10
10
|
Classifier: Development Status :: 3 - Alpha
|
|
11
11
|
Classifier: Environment :: Console
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
@@ -21,28 +21,41 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
25
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
25
26
|
Classifier: Topic :: Education :: Testing
|
|
26
27
|
Classifier: Topic :: Software Development :: Testing
|
|
27
28
|
Classifier: Topic :: Software Development :: Testing :: Unit
|
|
28
29
|
Classifier: Typing :: Typed
|
|
30
|
+
Provides-Extra: fandango-faker
|
|
31
|
+
Provides-Extra: numpy
|
|
32
|
+
Provides-Extra: openai
|
|
33
|
+
Provides-Extra: typing
|
|
29
34
|
Requires-Dist: Jinja2 (>=3.1.6,<4.0.0)
|
|
30
35
|
Requires-Dist: Pygments (>=2.19.2,<3.0.0)
|
|
31
36
|
Requires-Dist: asciitree (>=0.3.3,<0.4.0)
|
|
32
|
-
Requires-Dist: astroid (>=
|
|
37
|
+
Requires-Dist: astroid (>=4.0.1,<5.0.0)
|
|
33
38
|
Requires-Dist: black (>=25.1.0,<26.0.0)
|
|
34
|
-
Requires-Dist: bytecode (
|
|
35
|
-
Requires-Dist: dill (>=0.
|
|
39
|
+
Requires-Dist: bytecode (==0.17.0)
|
|
40
|
+
Requires-Dist: dill (>=0.4.0,<0.5.0)
|
|
41
|
+
Requires-Dist: faker (>=37.3.0,<38.0.0) ; extra == "fandango-faker"
|
|
42
|
+
Requires-Dist: fandango-fuzzer (>=0.8.2,<0.9.0) ; extra == "fandango-faker"
|
|
36
43
|
Requires-Dist: libcst (>=1.7.0,<2.0.0)
|
|
37
|
-
Requires-Dist: multiprocess (>=0.70.
|
|
38
|
-
Requires-Dist:
|
|
39
|
-
Requires-Dist:
|
|
44
|
+
Requires-Dist: multiprocess (>=0.70.18,<0.71.0)
|
|
45
|
+
Requires-Dist: mypy (>=1.15.0,<2.0.0) ; extra == "typing"
|
|
46
|
+
Requires-Dist: networkx (>=3.4.2,<4.0.0)
|
|
47
|
+
Requires-Dist: numpy (>=1.26.4,<2.0.0) ; extra == "numpy"
|
|
48
|
+
Requires-Dist: openai (>=1.72.0,<2.0.0) ; extra == "openai"
|
|
49
|
+
Requires-Dist: psutil (>=7.1.1,<8.0.0)
|
|
40
50
|
Requires-Dist: pytest (>=8.3.5,<9.0.0)
|
|
41
51
|
Requires-Dist: rich (>=14.0.0,<15.0.0)
|
|
42
|
-
Requires-Dist:
|
|
52
|
+
Requires-Dist: rstr (>=3.2.2,<4.0.0)
|
|
53
|
+
Requires-Dist: setuptools (>=80.9.0,<81.0.0)
|
|
43
54
|
Requires-Dist: simple-parsing (>=0.1.7,<0.2.0)
|
|
44
55
|
Requires-Dist: toml (>=0.10.2,<0.11.0)
|
|
56
|
+
Requires-Dist: typing-extensions (>=4.12.2,<5.0.0) ; extra == "typing"
|
|
45
57
|
Requires-Dist: typing_inspect (>=0.9.0,<0.10.0)
|
|
58
|
+
Requires-Dist: xmltodict (>=0.14.2,<0.15.0) ; extra == "fandango-faker"
|
|
46
59
|
Project-URL: Documentation, https://pynguin.readthedocs.io
|
|
47
60
|
Project-URL: Homepage, https://www.pynguin.eu
|
|
48
61
|
Project-URL: Repository, https://github.com/se2p/pynguin
|
|
@@ -86,7 +99,7 @@ and allows the automated generation of unit tests for Python programs.
|
|
|
86
99
|
[](https://github.com/astral-sh/ruff)
|
|
87
100
|
[](https://badge.fury.io/py/pynguin)
|
|
88
101
|
[](https://github.com/se2p/pynguin)
|
|
89
|
-
[](https://pynguin.readthedocs.io/
|
|
102
|
+
[](https://pynguin.readthedocs.io/)
|
|
90
103
|
[](https://doi.org/10.5281/zenodo.3989840)
|
|
91
104
|
[](https://api.reuse.software/info/github.com/se2p/pynguin)
|
|
92
105
|
[](https://pepy.tech/project/pynguin)
|
|
@@ -116,7 +129,7 @@ please report your experiences in using Pynguin to us.
|
|
|
116
129
|
## Prerequisites
|
|
117
130
|
|
|
118
131
|
Before you begin, ensure you have met the following requirements:
|
|
119
|
-
- You have installed Python 3.10 (the support for 3.11, 3.12 and 3.
|
|
132
|
+
- You have installed Python 3.10 (the support for 3.11, 3.12, 3.13 and 3.14 is experimental).
|
|
120
133
|
|
|
121
134
|
**Attention:** Pynguin now requires Python 3.10! Older versions are no longer
|
|
122
135
|
supported!
|
|
@@ -180,6 +193,9 @@ of the [University of Passau](https://www.uni-passau.de).
|
|
|
180
193
|
Maintainers: [Stephan Lukasczyk](https://github.com/stephanlukasczyk), [Lukas Krodinger](https://github.com/LuKrO2011)
|
|
181
194
|
|
|
182
195
|
Contributors:
|
|
196
|
+
- [Lukas Vögl](https://github.com/lvoegl)
|
|
197
|
+
- [Louis Leppelmann](https://github.com/Tudeldu)
|
|
198
|
+
- [Alexander Wüst](https://github.com/Ravaqor)
|
|
183
199
|
- [Altin Hajdari](https://github.com/AltinHajdari)
|
|
184
200
|
- [Abdelillah Aissani](https://github.com/Abassion)
|
|
185
201
|
- [Juan Altmayer Pizzorno](https://github.com/jaltmayerpizzorno)
|
|
@@ -36,7 +36,7 @@ and allows the automated generation of unit tests for Python programs.
|
|
|
36
36
|
[](https://github.com/astral-sh/ruff)
|
|
37
37
|
[](https://badge.fury.io/py/pynguin)
|
|
38
38
|
[](https://github.com/se2p/pynguin)
|
|
39
|
-
[](https://pynguin.readthedocs.io/
|
|
39
|
+
[](https://pynguin.readthedocs.io/)
|
|
40
40
|
[](https://doi.org/10.5281/zenodo.3989840)
|
|
41
41
|
[](https://api.reuse.software/info/github.com/se2p/pynguin)
|
|
42
42
|
[](https://pepy.tech/project/pynguin)
|
|
@@ -66,7 +66,7 @@ please report your experiences in using Pynguin to us.
|
|
|
66
66
|
## Prerequisites
|
|
67
67
|
|
|
68
68
|
Before you begin, ensure you have met the following requirements:
|
|
69
|
-
- You have installed Python 3.10 (the support for 3.11, 3.12 and 3.
|
|
69
|
+
- You have installed Python 3.10 (the support for 3.11, 3.12, 3.13 and 3.14 is experimental).
|
|
70
70
|
|
|
71
71
|
**Attention:** Pynguin now requires Python 3.10! Older versions are no longer
|
|
72
72
|
supported!
|
|
@@ -130,6 +130,9 @@ of the [University of Passau](https://www.uni-passau.de).
|
|
|
130
130
|
Maintainers: [Stephan Lukasczyk](https://github.com/stephanlukasczyk), [Lukas Krodinger](https://github.com/LuKrO2011)
|
|
131
131
|
|
|
132
132
|
Contributors:
|
|
133
|
+
- [Lukas Vögl](https://github.com/lvoegl)
|
|
134
|
+
- [Louis Leppelmann](https://github.com/Tudeldu)
|
|
135
|
+
- [Alexander Wüst](https://github.com/Ravaqor)
|
|
133
136
|
- [Altin Hajdari](https://github.com/AltinHajdari)
|
|
134
137
|
- [Abdelillah Aissani](https://github.com/Abassion)
|
|
135
138
|
- [Juan Altmayer Pizzorno](https://github.com/jaltmayerpizzorno)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
6
|
name = "pynguin"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.44.0"
|
|
8
8
|
description = "Pynguin is a tool for automated unit test generation for Python"
|
|
9
9
|
authors = [
|
|
10
10
|
"Stephan Lukasczyk <stephan@pynguin.eu>",
|
|
@@ -35,6 +35,7 @@ classifiers = [
|
|
|
35
35
|
"Programming Language :: Python :: 3.11",
|
|
36
36
|
"Programming Language :: Python :: 3.12",
|
|
37
37
|
"Programming Language :: Python :: 3.13",
|
|
38
|
+
"Programming Language :: Python :: 3.14",
|
|
38
39
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
39
40
|
"Topic :: Education :: Testing",
|
|
40
41
|
"Topic :: Software Development :: Testing",
|
|
@@ -49,14 +50,14 @@ include = [
|
|
|
49
50
|
]
|
|
50
51
|
|
|
51
52
|
[tool.poetry.dependencies]
|
|
52
|
-
python = ">=3.10, <3.
|
|
53
|
-
astroid = "^
|
|
53
|
+
python = ">=3.10, <3.15"
|
|
54
|
+
astroid = "^4.0.1"
|
|
54
55
|
black = "^25.1.0"
|
|
55
|
-
bytecode = "
|
|
56
|
-
dill = "^0.
|
|
56
|
+
bytecode = "0.17.0"
|
|
57
|
+
dill = "^0.4.0"
|
|
57
58
|
Jinja2 = "^3.1.6"
|
|
58
|
-
networkx = "^3.4"
|
|
59
|
-
multiprocess = "^0.70.
|
|
59
|
+
networkx = "^3.4.2"
|
|
60
|
+
multiprocess = "^0.70.18"
|
|
60
61
|
rich = "^14.0.0"
|
|
61
62
|
Pygments = "^2.19.2"
|
|
62
63
|
pytest = "^8.3.5"
|
|
@@ -64,12 +65,19 @@ simple-parsing = "^0.1.7"
|
|
|
64
65
|
typing_inspect = "^0.9.0"
|
|
65
66
|
asciitree = "^0.3.3"
|
|
66
67
|
libcst = "^1.7.0"
|
|
67
|
-
setuptools = "^
|
|
68
|
+
setuptools = "^80.9.0"
|
|
68
69
|
toml = "^0.10.2"
|
|
69
|
-
psutil = "^7.
|
|
70
|
+
psutil = "^7.1.1"
|
|
71
|
+
rstr = "^3.2.2"
|
|
72
|
+
openai = { version = "^1.72.0", optional = true }
|
|
73
|
+
numpy = { version = "^1.26.4", optional = true }
|
|
74
|
+
mypy = { version = "^1.15.0", optional = true }
|
|
75
|
+
typing-extensions = { version = "^4.12.2", optional = true }
|
|
76
|
+
faker = { version = "^37.3.0", optional = true }
|
|
77
|
+
fandango-fuzzer = { version = "^0.8.2", optional = true }
|
|
78
|
+
xmltodict = { version = "^0.14.2", optional = true }
|
|
70
79
|
|
|
71
80
|
[tool.poetry.group.dev.dependencies]
|
|
72
|
-
isort = { extras = ["pyproject"], version = "^6.0.1" }
|
|
73
81
|
mypy = "^1.15.0"
|
|
74
82
|
pre-commit = "^4.2.0"
|
|
75
83
|
ruff = "^0.11"
|
|
@@ -91,17 +99,11 @@ pytest-mock = "^3.14.0"
|
|
|
91
99
|
pytest-picked = "^0.5.1"
|
|
92
100
|
pytest-sugar = "^1.0.0"
|
|
93
101
|
|
|
94
|
-
[tool.poetry.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
[
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
[tool.poetry.group.numpy]
|
|
101
|
-
optional = true
|
|
102
|
-
|
|
103
|
-
[tool.poetry.group.numpy.dependencies]
|
|
104
|
-
numpy = "^1.26.4"
|
|
102
|
+
[tool.poetry.extras]
|
|
103
|
+
openai = [ "openai" ]
|
|
104
|
+
numpy = [ "numpy" ]
|
|
105
|
+
typing = [ "mypy", "typing-extensions" ]
|
|
106
|
+
fandango-faker = [ "faker", "fandango-fuzzer", "xmltodict" ]
|
|
105
107
|
|
|
106
108
|
[tool.poetry.scripts]
|
|
107
109
|
pynguin = "pynguin.cli:main"
|
|
@@ -127,15 +129,6 @@ exclude_lines = [
|
|
|
127
129
|
[tool.coverage.html]
|
|
128
130
|
directory = "cov_html"
|
|
129
131
|
|
|
130
|
-
[tool.isort]
|
|
131
|
-
py_version = 310
|
|
132
|
-
profile = "black"
|
|
133
|
-
force_single_line = true
|
|
134
|
-
combine_as_imports = true
|
|
135
|
-
lines_between_types = 1
|
|
136
|
-
lines_after_imports = 2
|
|
137
|
-
src_paths = ["src", "tests"]
|
|
138
|
-
|
|
139
132
|
[tool.mypy]
|
|
140
133
|
files = "src"
|
|
141
134
|
mypy_path = "src"
|
|
@@ -218,6 +211,7 @@ select = [
|
|
|
218
211
|
"FLY", # flynt
|
|
219
212
|
"FURB", # refurb
|
|
220
213
|
"G", # flake8-logging-format
|
|
214
|
+
"I", # isort
|
|
221
215
|
"ICN", # flake8-import-conventions
|
|
222
216
|
"INT", # flake8-gettext
|
|
223
217
|
"ISC", # flake8-implicit-str-concat
|
|
@@ -284,14 +278,14 @@ convention = "google"
|
|
|
284
278
|
|
|
285
279
|
[tool.tox]
|
|
286
280
|
requires = ["tox~=4.28"]
|
|
287
|
-
env_list = ["3.10", "3.11", "3.12", "3.13"]
|
|
281
|
+
env_list = ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
288
282
|
|
|
289
283
|
[tool.tox.env_run_base]
|
|
290
284
|
skip_install = true
|
|
291
285
|
allowlist_externals = ["make", "poetry"]
|
|
292
286
|
commands_pre = [
|
|
293
287
|
["poetry", "env", "use", "{env_name}"],
|
|
294
|
-
["poetry", "install", "--
|
|
288
|
+
["poetry", "install", "--extras", "openai numpy fandango-faker"]
|
|
295
289
|
]
|
|
296
290
|
commands = [
|
|
297
291
|
["make", "check"],
|
|
@@ -7,16 +7,18 @@
|
|
|
7
7
|
"""Pynguin is an automated unit test generation framework for Python."""
|
|
8
8
|
|
|
9
9
|
import copyreg
|
|
10
|
-
|
|
10
|
+
import logging
|
|
11
|
+
import threading
|
|
11
12
|
from collections.abc import Callable
|
|
12
13
|
|
|
13
|
-
from bytecode.instr import
|
|
14
|
-
|
|
14
|
+
from bytecode.instr import (
|
|
15
|
+
_UNSET, # noqa: PLC2701
|
|
16
|
+
InstrLocation,
|
|
17
|
+
)
|
|
15
18
|
|
|
16
19
|
import pynguin.configuration as config
|
|
17
20
|
import pynguin.generator as gen
|
|
18
21
|
|
|
19
|
-
|
|
20
22
|
set_configuration = gen.set_configuration
|
|
21
23
|
run_pynguin = gen.run_pynguin
|
|
22
24
|
Configuration = config.Configuration
|
|
@@ -62,3 +64,24 @@ def _pickle_unset(unset: _UNSET) -> tuple[Callable[[], _UNSET], tuple]: # noqa:
|
|
|
62
64
|
|
|
63
65
|
|
|
64
66
|
copyreg.pickle(_UNSET, _pickle_unset)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
_LOGGER = logging.getLogger(__name__)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def _log_thread_exception(arg: threading.ExceptHookArgs) -> None:
|
|
73
|
+
_LOGGER.warning(
|
|
74
|
+
"Exception in Thread: %s",
|
|
75
|
+
arg.thread,
|
|
76
|
+
exc_info=( # noqa: LOG014
|
|
77
|
+
arg.exc_type,
|
|
78
|
+
arg.exc_value, # type: ignore[arg-type]
|
|
79
|
+
arg.exc_traceback,
|
|
80
|
+
),
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
# Set our own exception hook, so timeout related errors in executing threads
|
|
85
|
+
# are not spilled out to stderr and clutter our formatted output but are send
|
|
86
|
+
# to the logger
|
|
87
|
+
threading.excepthook = _log_thread_exception
|
|
@@ -14,7 +14,6 @@ import logging
|
|
|
14
14
|
import os
|
|
15
15
|
import string
|
|
16
16
|
import typing
|
|
17
|
-
|
|
18
17
|
from abc import ABC
|
|
19
18
|
from pathlib import Path
|
|
20
19
|
from pkgutil import iter_modules
|
|
@@ -27,11 +26,9 @@ from pynguin.utils.orderedset import OrderedSet
|
|
|
27
26
|
# Used for type hinting and for restricting stored types
|
|
28
27
|
from pynguin.utils.typetracing import unwrap
|
|
29
28
|
|
|
30
|
-
|
|
31
29
|
if typing.TYPE_CHECKING:
|
|
32
30
|
from collections.abc import Callable
|
|
33
|
-
from typing import Any
|
|
34
|
-
from typing import ClassVar
|
|
31
|
+
from typing import Any, ClassVar
|
|
35
32
|
|
|
36
33
|
|
|
37
34
|
ConstantTypes = float | int | str | bytes | complex
|
|
@@ -306,7 +303,7 @@ class _ConstantCollector(ast.NodeVisitor):
|
|
|
306
303
|
|
|
307
304
|
def visit_Constant(self, node: ast.Constant): # noqa: N802
|
|
308
305
|
if type(node.value) in typing.get_args(ConstantTypes):
|
|
309
|
-
self._pool.add_constant(node.value)
|
|
306
|
+
self._pool.add_constant(node.value) # type: ignore[arg-type]
|
|
310
307
|
return self.generic_visit(node)
|
|
311
308
|
|
|
312
309
|
def visit_Module(self, node: ast.Module): # noqa: N802
|