CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
MANIFEST.in
README.md
pyproject.toml
setup.cfg
setup.py
docs/AGENT_GUIDE.md
docs/GRPC_DOCUMENTATION_INDEX.md
docs/README.md
docs/advanced-performance.md
docs/ai-discovery-report.md
docs/ai-learning.md
docs/ai-mocking.md
docs/ai-orchestrator.md
docs/ai-setup.md
docs/api-reference.md
docs/assertions.md
docs/autonomous-test-generation-guide.md
docs/autonomous-test-generation.md
docs/changelog.rst
docs/chaos-testing.md
docs/ci-cd.md
docs/cli-reference.md
docs/cloud-integrations.md
docs/collaboration.md
docs/configuration.md
docs/contract-testing.md
docs/database-testing.md
docs/deep-context-awareness.md
docs/docker-compose-integration.md
docs/github-pages-setup.md
docs/grpc-testing.md
docs/how-it-works.md
docs/html-reporting.md
docs/ide-extensions.md
docs/index.rst
docs/installation.md
docs/license.rst
docs/mock-api.md
docs/nlp.md
docs/observability.md
docs/parallel-execution.md
docs/performance-profiling.md
docs/plugin-development.md
docs/project-manifest.md
docs/quickstart.md
docs/recorder.md
docs/red-team-security-guide.md
docs/regression-testing.md
docs/security-fuzzing.md
docs/semantic-analyzer-guide.md
docs/shadow_runner.md
docs/test-organization.md
docs/testing-guide.md
docs/the-observer.md
docs/websocket-testing.md
docs/writing-tests.md
docs/api/cli.rst
docs/api/core.rst
docs/api/models.rst
docs/api/utils.rst
docs/community/README.md
docs/tutorials/README.md
docs/tutorials/api-explorer.md
docs/tutorials/examples/README.md
docs/tutorials/guides/README.md
docs/tutorials/guides/guide-01-installation.md
examples/ai_mocking_example.py
examples/html_reporting_example.py
examples/performance_profiling_example.py
examples/01-basic-crud/README.md
examples/01-basic-crud/api.py
examples/01-basic-crud/services/items-api/data_schema.py
examples/01-basic-crud/services/items-api/items_api_page.py
examples/01-basic-crud/services/items-api/modules/01_create_item.py
examples/01-basic-crud/services/items-api/modules/02_list_items.py
examples/01-basic-crud/services/items-api/modules/03_get_item.py
examples/01-basic-crud/services/items-api/modules/04_update_item.py
examples/01-basic-crud/services/items-api/modules/05_delete_item.py
examples/02-auth-jwt/README.md
examples/02-auth-jwt/api.py
examples/02-auth-jwt/services/auth-api/auth_api_page.py
examples/02-auth-jwt/services/auth-api/data_schema.py
examples/02-auth-jwt/services/auth-api/modules/01_register_flow.py
examples/02-auth-jwt/services/auth-api/modules/02_login_flow.py
examples/02-auth-jwt/services/auth-api/modules/03_refresh_token_flow.py
examples/02-auth-jwt/services/auth-api/modules/04_protected_endpoints.py
examples/03-microservices/README.md
examples/03-microservices/orders-service/orders_api.py
examples/03-microservices/payment-service/payment_api.py
examples/03-microservices/services/__init__.py
examples/03-microservices/services/orders-api/__init__.py
examples/03-microservices/services/orders-api/orders_api_page.py
examples/03-microservices/services/orders-api/modules/01_orders_test.py
examples/03-microservices/services/orders-api/modules/__init__.py
examples/03-microservices/services/payment-api/__init__.py
examples/03-microservices/services/payment-api/payment_api_page.py
examples/03-microservices/services/payment-api/modules/01_payment_test.py
examples/03-microservices/services/payment-api/modules/__init__.py
examples/03-microservices/services/users-api/__init__.py
examples/03-microservices/services/users-api/users_api_page.py
examples/03-microservices/services/users-api/modules/01_users_test.py
examples/03-microservices/services/users-api/modules/__init__.py
examples/03-microservices/users-service/users_api.py
examples/advanced_usage/README.md
examples/advanced_usage/auth_headers_example.py
examples/advanced_usage/env_variables_example.py
examples/advanced_usage/fixtures_example.py
examples/advanced_usage/parameterized_tests_example.py
examples/basic_api_test/README.md
examples/basic_api_test/services/__init__.py
examples/basic_api_test/services/jsonplaceholder/__init__.py
examples/basic_api_test/services/jsonplaceholder/jsonplaceholder_page.py
examples/basic_api_test/services/jsonplaceholder/modules/01_get_post.py
examples/basic_api_test/services/jsonplaceholder/modules/__init__.py
examples/docker/docker_compose_example.py
examples/graphql/blog_graphql_page.py
examples/grpc/README.md
examples/grpc/__init__.py
examples/grpc/mock_server.py
examples/grpc/user_grpc_page.py
examples/grpc/protos/__init__.py
examples/interactive_doctor/example_interactive_doctor.py
examples/plugins/custom_assertions_plugin.py
examples/plugins/hook_plugin.py
examples/plugins/json_reporter_plugin.py
examples/traceability/example_traceability.py
examples/websocket/README.md
examples/websocket/chat_service_page.py
examples/websocket/mock_server.py
examples/websocket/test_websocket.py
src/socialseed_e2e/__init__.py
src/socialseed_e2e/__main__.py
src/socialseed_e2e/__version__.py
src/socialseed_e2e/cli.py
src/socialseed_e2e/mock_server.py
src/socialseed_e2e.egg-info/PKG-INFO
src/socialseed_e2e.egg-info/SOURCES.txt
src/socialseed_e2e.egg-info/dependency_links.txt
src/socialseed_e2e.egg-info/entry_points.txt
src/socialseed_e2e.egg-info/requires.txt
src/socialseed_e2e.egg-info/top_level.txt
src/socialseed_e2e/agents/__init__.py
src/socialseed_e2e/agents/red_team_adversary/__init__.py
src/socialseed_e2e/agents/red_team_adversary/adversarial_prober.py
src/socialseed_e2e/agents/red_team_adversary/guardrail_discovery.py
src/socialseed_e2e/agents/red_team_adversary/models.py
src/socialseed_e2e/agents/red_team_adversary/red_team_agent.py
src/socialseed_e2e/agents/red_team_adversary/resilience_scorer.py
src/socialseed_e2e/agents/red_team_adversary/security_logger.py
src/socialseed_e2e/agents/semantic_analyzer/__init__.py
src/socialseed_e2e/agents/semantic_analyzer/grpc_client.py
src/socialseed_e2e/agents/semantic_analyzer/grpc_server.py
src/socialseed_e2e/agents/semantic_analyzer/intent_baseline_extractor.py
src/socialseed_e2e/agents/semantic_analyzer/logic_drift_detector.py
src/socialseed_e2e/agents/semantic_analyzer/models.py
src/socialseed_e2e/agents/semantic_analyzer/report_generator.py
src/socialseed_e2e/agents/semantic_analyzer/semantic_analyzer_agent.py
src/socialseed_e2e/agents/semantic_analyzer/stateful_analyzer.py
src/socialseed_e2e/agents/semantic_analyzer/proto/__init__.py
src/socialseed_e2e/agents/semantic_analyzer/proto/generate.py
src/socialseed_e2e/agents/semantic_analyzer/proto/semantic_analyzer_pb2.py
src/socialseed_e2e/agents/semantic_analyzer/proto/semantic_analyzer_pb2_grpc.py
src/socialseed_e2e/ai_learning/__init__.py
src/socialseed_e2e/ai_learning/adaptation_engine.py
src/socialseed_e2e/ai_learning/feedback_collector.py
src/socialseed_e2e/ai_learning/model_trainer.py
src/socialseed_e2e/ai_mocking/__init__.py
src/socialseed_e2e/ai_mocking/contract_validator.py
src/socialseed_e2e/ai_mocking/external_api_analyzer.py
src/socialseed_e2e/ai_mocking/external_service_registry.py
src/socialseed_e2e/ai_mocking/mock_server_generator.py
src/socialseed_e2e/ai_orchestrator/__init__.py
src/socialseed_e2e/ai_orchestrator/autonomous_runner.py
src/socialseed_e2e/ai_orchestrator/debugger.py
src/socialseed_e2e/ai_orchestrator/models.py
src/socialseed_e2e/ai_orchestrator/self_healer.py
src/socialseed_e2e/ai_orchestrator/strategy_planner.py
src/socialseed_e2e/ai_protocol/__init__.py
src/socialseed_e2e/ai_protocol/capability_registry.py
src/socialseed_e2e/ai_protocol/error_handler.py
src/socialseed_e2e/ai_protocol/intent_parser.py
src/socialseed_e2e/ai_protocol/message_formats.py
src/socialseed_e2e/ai_protocol/progress_reporter.py
src/socialseed_e2e/analytics/__init__.py
src/socialseed_e2e/analytics/anomaly_detector.py
src/socialseed_e2e/analytics/forecaster.py
src/socialseed_e2e/analytics/trend_analyzer.py
src/socialseed_e2e/assertions/__init__.py
src/socialseed_e2e/assertions/base.py
src/socialseed_e2e/assertions/collections.py
src/socialseed_e2e/assertions/graphql.py
src/socialseed_e2e/assertions/json_schema.py
src/socialseed_e2e/assertions/statistical.py
src/socialseed_e2e/assertions/time_assertions.py
src/socialseed_e2e/chaos/__init__.py
src/socialseed_e2e/chaos/network_chaos.py
src/socialseed_e2e/chaos/resource_chaos.py
src/socialseed_e2e/chaos/service_chaos.py
src/socialseed_e2e/cloud/__init__.py
src/socialseed_e2e/cloud/aws/__init__.py
src/socialseed_e2e/cloud/azure/__init__.py
src/socialseed_e2e/cloud/gcp/__init__.py
src/socialseed_e2e/collaboration/__init__.py
src/socialseed_e2e/collaboration/permissions.py
src/socialseed_e2e/collaboration/review.py
src/socialseed_e2e/collaboration/sharing.py
src/socialseed_e2e/community/__init__.py
src/socialseed_e2e/community/plugin_repository.py
src/socialseed_e2e/community/template_marketplace.py
src/socialseed_e2e/contract_testing/__init__.py
src/socialseed_e2e/contract_testing/consumer.py
src/socialseed_e2e/contract_testing/provider.py
src/socialseed_e2e/contract_testing/registry.py
src/socialseed_e2e/core/__init__.py
src/socialseed_e2e/core/base_graphql_page.py
src/socialseed_e2e/core/base_grpc_page.py
src/socialseed_e2e/core/base_page.py
src/socialseed_e2e/core/base_websocket_page.py
src/socialseed_e2e/core/check_deps.py
src/socialseed_e2e/core/config.py
src/socialseed_e2e/core/config_loader.py
src/socialseed_e2e/core/headers.py
src/socialseed_e2e/core/interfaces.py
src/socialseed_e2e/core/loaders.py
src/socialseed_e2e/core/models.py
src/socialseed_e2e/core/organization.py
src/socialseed_e2e/core/parallel_runner.py
src/socialseed_e2e/core/test_orchestrator.py
src/socialseed_e2e/core/test_runner.py
src/socialseed_e2e/core/interactive_doctor/__init__.py
src/socialseed_e2e/core/interactive_doctor/analyzer.py
src/socialseed_e2e/core/interactive_doctor/doctor.py
src/socialseed_e2e/core/interactive_doctor/fixer.py
src/socialseed_e2e/core/interactive_doctor/models.py
src/socialseed_e2e/core/interactive_doctor/suggester.py
src/socialseed_e2e/core/traceability/__init__.py
src/socialseed_e2e/core/traceability/collector.py
src/socialseed_e2e/core/traceability/integration.py
src/socialseed_e2e/core/traceability/logic_mapper.py
src/socialseed_e2e/core/traceability/models.py
src/socialseed_e2e/core/traceability/reporter.py
src/socialseed_e2e/core/traceability/sequence_diagram.py
src/socialseed_e2e/dashboard/__init__.py
src/socialseed_e2e/dashboard/app.py
src/socialseed_e2e/dashboard/server.py
src/socialseed_e2e/database/__init__.py
src/socialseed_e2e/database/assertions.py
src/socialseed_e2e/database/connection_manager.py
src/socialseed_e2e/database/fixture_manager.py
src/socialseed_e2e/database/performance.py
src/socialseed_e2e/docker/__init__.py
src/socialseed_e2e/docker/manager.py
src/socialseed_e2e/docker/parser.py
src/socialseed_e2e/environments/__init__.py
src/socialseed_e2e/environments/manager.py
src/socialseed_e2e/environments/secrets.py
src/socialseed_e2e/environments/validator.py
src/socialseed_e2e/importers/__init__.py
src/socialseed_e2e/importers/base.py
src/socialseed_e2e/importers/curl_importer.py
src/socialseed_e2e/importers/openapi_importer.py
src/socialseed_e2e/importers/postman_importer.py
src/socialseed_e2e/ml/__init__.py
src/socialseed_e2e/ml/flakiness_detector.py
src/socialseed_e2e/ml/impact_analyzer.py
src/socialseed_e2e/ml/models.py
src/socialseed_e2e/ml/test_selector.py
src/socialseed_e2e/nlp/__init__.py
src/socialseed_e2e/nlp/code_generator.py
src/socialseed_e2e/nlp/context_awareness.py
src/socialseed_e2e/nlp/gherkin_parser.py
src/socialseed_e2e/nlp/models.py
src/socialseed_e2e/nlp/translator.py
src/socialseed_e2e/observability/__init__.py
src/socialseed_e2e/observability/datadog/__init__.py
src/socialseed_e2e/observability/jaeger/__init__.py
src/socialseed_e2e/observability/newrelic/__init__.py
src/socialseed_e2e/observability/prometheus/__init__.py
src/socialseed_e2e/performance/__init__.py
src/socialseed_e2e/performance/dashboard.py
src/socialseed_e2e/performance/integration.py
src/socialseed_e2e/performance/load_generator.py
src/socialseed_e2e/performance/metrics_collector.py
src/socialseed_e2e/performance/performance_models.py
src/socialseed_e2e/performance/performance_profiler.py
src/socialseed_e2e/performance/smart_alerts.py
src/socialseed_e2e/performance/threshold_analyzer.py
src/socialseed_e2e/plugins/__init__.py
src/socialseed_e2e/plugins/interfaces.py
src/socialseed_e2e/plugins/manager.py
src/socialseed_e2e/project_manifest/__init__.py
src/socialseed_e2e/project_manifest/api.py
src/socialseed_e2e/project_manifest/behavior_learner.py
src/socialseed_e2e/project_manifest/business_logic_inference.py
src/socialseed_e2e/project_manifest/db_model_parsers.py
src/socialseed_e2e/project_manifest/deep_context.py
src/socialseed_e2e/project_manifest/deep_scanner.py
src/socialseed_e2e/project_manifest/discovery_report.py
src/socialseed_e2e/project_manifest/domain_understanding.py
src/socialseed_e2e/project_manifest/dummy_data_generator.py
src/socialseed_e2e/project_manifest/file_watcher.py
src/socialseed_e2e/project_manifest/flow_test_generator.py
src/socialseed_e2e/project_manifest/generator.py
src/socialseed_e2e/project_manifest/hash_validator.py
src/socialseed_e2e/project_manifest/models.py
src/socialseed_e2e/project_manifest/observer.py
src/socialseed_e2e/project_manifest/parsers.py
src/socialseed_e2e/project_manifest/regression_agent.py
src/socialseed_e2e/project_manifest/relationship_mapper.py
src/socialseed_e2e/project_manifest/retrieval.py
src/socialseed_e2e/project_manifest/security_executor.py
src/socialseed_e2e/project_manifest/security_fuzzer.py
src/socialseed_e2e/project_manifest/semantic_analyzer.py
src/socialseed_e2e/project_manifest/vector_store.py
src/socialseed_e2e/project_manifest/vector_sync.py
src/socialseed_e2e/recorder/__init__.py
src/socialseed_e2e/recorder/converter.py
src/socialseed_e2e/recorder/models.py
src/socialseed_e2e/recorder/player.py
src/socialseed_e2e/recorder/proxy_server.py
src/socialseed_e2e/reporting/__init__.py
src/socialseed_e2e/reporting/html_report_generator.py
src/socialseed_e2e/reporting/report_models.py
src/socialseed_e2e/reporting/test_result_collector.py
src/socialseed_e2e/risk_analyzer/__init__.py
src/socialseed_e2e/risk_analyzer/change_analyzer.py
src/socialseed_e2e/risk_analyzer/heatmap_generator.py
src/socialseed_e2e/risk_analyzer/impact_calculator.py
src/socialseed_e2e/risk_analyzer/risk_scorer.py
src/socialseed_e2e/services/__init__.py
src/socialseed_e2e/shadow_runner/__init__.py
src/socialseed_e2e/shadow_runner/capture_filter.py
src/socialseed_e2e/shadow_runner/privacy_sanitizer.py
src/socialseed_e2e/shadow_runner/session_recorder.py
src/socialseed_e2e/shadow_runner/test_generator.py
src/socialseed_e2e/shadow_runner/traffic_interceptor.py
src/socialseed_e2e/src/socialseed_e2e/agents/semantic_analyzer/report_generator.py
src/socialseed_e2e/telemetry/__init__.py
src/socialseed_e2e/telemetry/budget_manager.py
src/socialseed_e2e/telemetry/cost_regression.py
src/socialseed_e2e/telemetry/loop_detector.py
src/socialseed_e2e/telemetry/models.py
src/socialseed_e2e/telemetry/optimization_recommender.py
src/socialseed_e2e/telemetry/report_generator.py
src/socialseed_e2e/telemetry/telemetry_manager.py
src/socialseed_e2e/telemetry/token_monitor.py
src/socialseed_e2e/templates/__init__.py
src/socialseed_e2e/templates/config.py.template
src/socialseed_e2e/templates/conftest.py.template
src/socialseed_e2e/templates/data_schema.py.template
src/socialseed_e2e/templates/e2e.conf.template
src/socialseed_e2e/templates/example_README.md.template
src/socialseed_e2e/templates/example_data_schema.py.template
src/socialseed_e2e/templates/example_service_page.py.template
src/socialseed_e2e/templates/example_test.py.template
src/socialseed_e2e/templates/example_test_create.py.template
src/socialseed_e2e/templates/example_test_health.py.template
src/socialseed_e2e/templates/grpc_service_page.py.template
src/socialseed_e2e/templates/pyproject.toml.template
src/socialseed_e2e/templates/report.html.template
src/socialseed_e2e/templates/service_page.py.template
src/socialseed_e2e/templates/socialseed.config.yaml.template
src/socialseed_e2e/templates/test_module.py.template
src/socialseed_e2e/templates/verify_installation.py
src/socialseed_e2e/templates/agent_docs/AGENTS.md.template
src/socialseed_e2e/templates/agent_docs/AGENT_GUIDE.md.template
src/socialseed_e2e/templates/agent_docs/EXAMPLE_TEST.md.template
src/socialseed_e2e/templates/agent_docs/FRAMEWORK_CONTEXT.md.template
src/socialseed_e2e/templates/agent_docs/GRPC_AGENT_GUIDE.md.template
src/socialseed_e2e/templates/agent_docs/GRPC_EXAMPLE_TEST.md.template
src/socialseed_e2e/templates/agent_docs/SERVICE_DETECTION.md.template
src/socialseed_e2e/templates/agent_docs/WORKFLOW_GENERATION.md.template
src/socialseed_e2e/templates/ci-cd/azure-devops/azure-pipelines.yml.template
src/socialseed_e2e/templates/ci-cd/bitbucket/bitbucket-pipelines.yml.template
src/socialseed_e2e/templates/ci-cd/circleci/config.yml.template
src/socialseed_e2e/templates/ci-cd/github-actions/advanced-matrix-workflow.yml.template
src/socialseed_e2e/templates/ci-cd/github-actions/basic-workflow.yml.template
src/socialseed_e2e/templates/ci-cd/github-actions/parallel-workflow.yml.template
src/socialseed_e2e/templates/ci-cd/gitlab-ci/gitlab-ci.yml.template
src/socialseed_e2e/templates/ci-cd/jenkins/Jenkinsfile.template
src/socialseed_e2e/templates/ci-cd/travis/travis.yml.template
src/socialseed_e2e/test_data/__init__.py
src/socialseed_e2e/test_data/factories.py
src/socialseed_e2e/test_data/seeder.py
src/socialseed_e2e/tui/__init__.py
src/socialseed_e2e/tui/app.py
src/socialseed_e2e/tui/components/log_view.py
src/socialseed_e2e/tui/components/status_bar.py
src/socialseed_e2e/tui/components/test_detail.py
src/socialseed_e2e/tui/components/test_list.py
src/socialseed_e2e/utils/__init__.py
src/socialseed_e2e/utils/ai_generator.py
src/socialseed_e2e/utils/proto_schema.py
src/socialseed_e2e/utils/pydantic_helpers.py
src/socialseed_e2e/utils/state_management.py
src/socialseed_e2e/utils/template_engine.py
src/socialseed_e2e/utils/validators.py
src/socialseed_e2e/visual_testing/__init__.py
src/socialseed_e2e/visual_testing/ai_comparator.py
src/socialseed_e2e/visual_testing/baseline_manager.py
src/socialseed_e2e/visual_testing/models.py
src/socialseed_e2e/visual_testing/screenshotter.py
tests/__init__.py
tests/conftest.py
tests/test_red_team_adversary.py
tests/test_semantic_analyzer.py
tests/test_telemetry.py
tests/validate_installation.py
tests/fixtures/__init__.py
tests/fixtures/mock_api.py
tests/integration/__init__.py
tests/integration/test_mock_api_integration.py
tests/integration/cli/__init__.py
tests/integration/cli/conftest.py
tests/integration/cli/test_config.py
tests/integration/cli/test_doctor.py
tests/integration/cli/test_error_handling.py
tests/integration/cli/test_init.py
tests/integration/cli/test_new_service.py
tests/integration/cli/test_new_test.py
tests/integration/cli/test_run.py
tests/integration/cli/test_workflows.py
tests/project_manifest/test_business_logic_inference.py
tests/project_manifest/test_discovery_report.py
tests/project_manifest/test_dummy_data_generator.py
tests/project_manifest/test_observer.py
tests/unit/__init__.py
tests/unit/test_ai_learning.py
tests/unit/test_ai_mocking.py
tests/unit/test_ai_orchestrator.py
tests/unit/test_base_page.py
tests/unit/test_collaboration.py
tests/unit/test_config_loader.py
tests/unit/test_data_management.py
tests/unit/test_docker.py
tests/unit/test_environments.py
tests/unit/test_html_reporting.py
tests/unit/test_imports_compatibility.py
tests/unit/test_loaders.py
tests/unit/test_nlp.py
tests/unit/test_orchestrator.py
tests/unit/test_performance_profiling.py
tests/unit/test_plugins.py
tests/unit/test_template_engine.py
tests/unit/test_validators.py
tests/unit/ai_protocol/test_protocol.py
tests/unit/analytics/test_analytics.py
tests/unit/community/test_community.py
tests/unit/core/test_base_grpc_page.py
tests/unit/core/test_cli_flags.py
tests/unit/core/test_graphql_page.py
tests/unit/core/test_parallel_runner.py
tests/unit/core/test_report_generation.py
tests/unit/core/test_websocket_page.py
tests/unit/core/traceability/__init__.py
tests/unit/core/traceability/test_collector.py
tests/unit/core/traceability/test_logic_mapper.py
tests/unit/core/traceability/test_models.py
tests/unit/core/traceability/test_sequence_diagram.py
tests/unit/ml/test_flakiness_detector.py
tests/unit/ml/test_impact_analyzer.py
tests/unit/ml/test_models.py
tests/unit/ml/test_test_selector.py
tests/unit/project_manifest/__init__.py
tests/unit/project_manifest/test_api.py
tests/unit/project_manifest/test_deep_context.py
tests/unit/project_manifest/test_deep_scanner.py
tests/unit/project_manifest/test_dummy_data_generator_enhanced.py
tests/unit/project_manifest/test_file_watcher.py
tests/unit/project_manifest/test_generator.py
tests/unit/project_manifest/test_hash_validator.py
tests/unit/project_manifest/test_models.py
tests/unit/project_manifest/test_parsers.py
tests/unit/project_manifest/test_retrieval.py
tests/unit/project_manifest/test_vector_store.py
tests/unit/shadow_runner/test_capture_filter.py
tests/unit/shadow_runner/test_privacy_sanitizer.py
tests/unit/shadow_runner/test_session_recorder.py
tests/unit/shadow_runner/test_shadow_runner.py
tests/unit/shadow_runner/test_traffic_interceptor.py
tests/unit/utils/test_ai_generator.py
tests/unit/utils/test_pydantic_helpers.py