├── .coveragerc ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── cd.yml │ ├── ci.yml │ ├── documentation.yml │ └── snyk.yml ├── .gitignore ├── CHANGES.txt ├── CLAUDE.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── README.md ├── docs ├── .nojekyll ├── Makefile ├── make.bat ├── requirements.txt └── source │ ├── conf.py │ ├── index.rst │ ├── modules.rst │ └── snowplow_tracker.rst ├── examples ├── redis_example │ ├── README.md │ ├── redis_app.py │ ├── redis_worker.py │ └── requirements.txt ├── snowplow_api_example │ ├── README.md │ └── snowplow_app.py └── tracker_api_example │ ├── README.md │ └── app.py ├── requirements-test.txt ├── run-tests.sh ├── setup.py └── snowplow_tracker ├── __init__.py ├── _version.py ├── constants.py ├── contracts.py ├── emitter_configuration.py ├── emitters.py ├── event_store.py ├── events ├── CLAUDE.md ├── __init__.py ├── event.py ├── page_ping.py ├── page_view.py ├── screen_view.py ├── self_describing.py └── structured_event.py ├── payload.py ├── py.typed ├── self_describing_json.py ├── snowplow.py ├── subject.py ├── test ├── CLAUDE.md ├── __init__.py ├── integration │ ├── __init__.py │ └── test_integration.py └── unit │ ├── __init__.py │ ├── test_contracts.py │ ├── test_emitters.py │ ├── test_event.py │ ├── test_in_memory_event_store.py │ ├── test_page_ping.py │ ├── test_page_view.py │ ├── test_payload.py │ ├── test_structured_event.py │ ├── test_subject.py │ └── test_tracker.py ├── tracker.py ├── tracker_configuration.py └── typing.py /.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | relative_files = True 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/workflows/cd.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/.github/workflows/cd.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/documentation.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/.github/workflows/documentation.yml -------------------------------------------------------------------------------- /.github/workflows/snyk.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/.github/workflows/snyk.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGES.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/CHANGES.txt -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/LICENSE -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/MANIFEST.in -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/README.md -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/docs/make.bat -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/docs/requirements.txt -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/docs/source/conf.py -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/docs/source/index.rst -------------------------------------------------------------------------------- /docs/source/modules.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/docs/source/modules.rst -------------------------------------------------------------------------------- /docs/source/snowplow_tracker.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/docs/source/snowplow_tracker.rst -------------------------------------------------------------------------------- /examples/redis_example/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/examples/redis_example/README.md -------------------------------------------------------------------------------- /examples/redis_example/redis_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/examples/redis_example/redis_app.py -------------------------------------------------------------------------------- /examples/redis_example/redis_worker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/examples/redis_example/redis_worker.py -------------------------------------------------------------------------------- /examples/redis_example/requirements.txt: -------------------------------------------------------------------------------- 1 | redis~=4.5 2 | gevent~=22.10 -------------------------------------------------------------------------------- /examples/snowplow_api_example/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/examples/snowplow_api_example/README.md -------------------------------------------------------------------------------- /examples/snowplow_api_example/snowplow_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/examples/snowplow_api_example/snowplow_app.py -------------------------------------------------------------------------------- /examples/tracker_api_example/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/examples/tracker_api_example/README.md -------------------------------------------------------------------------------- /examples/tracker_api_example/app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/examples/tracker_api_example/app.py -------------------------------------------------------------------------------- /requirements-test.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/requirements-test.txt -------------------------------------------------------------------------------- /run-tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/run-tests.sh -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/setup.py -------------------------------------------------------------------------------- /snowplow_tracker/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/__init__.py -------------------------------------------------------------------------------- /snowplow_tracker/_version.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/_version.py -------------------------------------------------------------------------------- /snowplow_tracker/constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/constants.py -------------------------------------------------------------------------------- /snowplow_tracker/contracts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/contracts.py -------------------------------------------------------------------------------- /snowplow_tracker/emitter_configuration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/emitter_configuration.py -------------------------------------------------------------------------------- /snowplow_tracker/emitters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/emitters.py -------------------------------------------------------------------------------- /snowplow_tracker/event_store.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/event_store.py -------------------------------------------------------------------------------- /snowplow_tracker/events/CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/events/CLAUDE.md -------------------------------------------------------------------------------- /snowplow_tracker/events/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/events/__init__.py -------------------------------------------------------------------------------- /snowplow_tracker/events/event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/events/event.py -------------------------------------------------------------------------------- /snowplow_tracker/events/page_ping.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/events/page_ping.py -------------------------------------------------------------------------------- /snowplow_tracker/events/page_view.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/events/page_view.py -------------------------------------------------------------------------------- /snowplow_tracker/events/screen_view.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/events/screen_view.py -------------------------------------------------------------------------------- /snowplow_tracker/events/self_describing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/events/self_describing.py -------------------------------------------------------------------------------- /snowplow_tracker/events/structured_event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/events/structured_event.py -------------------------------------------------------------------------------- /snowplow_tracker/payload.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/payload.py -------------------------------------------------------------------------------- /snowplow_tracker/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snowplow_tracker/self_describing_json.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/self_describing_json.py -------------------------------------------------------------------------------- /snowplow_tracker/snowplow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/snowplow.py -------------------------------------------------------------------------------- /snowplow_tracker/subject.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/subject.py -------------------------------------------------------------------------------- /snowplow_tracker/test/CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/CLAUDE.md -------------------------------------------------------------------------------- /snowplow_tracker/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snowplow_tracker/test/integration/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snowplow_tracker/test/integration/test_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/integration/test_integration.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_contracts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_contracts.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_emitters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_emitters.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_event.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_in_memory_event_store.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_in_memory_event_store.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_page_ping.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_page_ping.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_page_view.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_page_view.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_payload.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_payload.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_structured_event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_structured_event.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_subject.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_subject.py -------------------------------------------------------------------------------- /snowplow_tracker/test/unit/test_tracker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/test/unit/test_tracker.py -------------------------------------------------------------------------------- /snowplow_tracker/tracker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/tracker.py -------------------------------------------------------------------------------- /snowplow_tracker/tracker_configuration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/tracker_configuration.py -------------------------------------------------------------------------------- /snowplow_tracker/typing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowplow/snowplow-python-tracker/HEAD/snowplow_tracker/typing.py --------------------------------------------------------------------------------