opentrash 0.0.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.
@@ -0,0 +1,228 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ # Pipfile.lock
96
+
97
+ # UV
98
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # uv.lock
102
+
103
+ # poetry
104
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
+ # poetry.lock
109
+ # poetry.toml
110
+
111
+ # pdm
112
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
114
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
115
+ # pdm.lock
116
+ # pdm.toml
117
+ .pdm-python
118
+ .pdm-build/
119
+
120
+ # pixi
121
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
122
+ # pixi.lock
123
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
124
+ # in the .venv directory. It is recommended not to include this directory in version control.
125
+ .pixi
126
+
127
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
128
+ __pypackages__/
129
+
130
+ # Celery stuff
131
+ celerybeat-schedule
132
+ celerybeat.pid
133
+
134
+ # Redis
135
+ *.rdb
136
+ *.aof
137
+ *.pid
138
+
139
+ # RabbitMQ
140
+ mnesia/
141
+ rabbitmq/
142
+ rabbitmq-data/
143
+
144
+ # ActiveMQ
145
+ activemq-data/
146
+
147
+ # SageMath parsed files
148
+ *.sage.py
149
+
150
+ # Environments
151
+ .env
152
+ .envrc
153
+ .venv
154
+ env/
155
+ venv/
156
+ ENV/
157
+ env.bak/
158
+ venv.bak/
159
+
160
+ # Spyder project settings
161
+ .spyderproject
162
+ .spyproject
163
+
164
+ # Rope project settings
165
+ .ropeproject
166
+
167
+ # mkdocs documentation
168
+ /site
169
+
170
+ # mypy
171
+ .mypy_cache/
172
+ .dmypy.json
173
+ dmypy.json
174
+
175
+ # Pyre type checker
176
+ .pyre/
177
+
178
+ # pytype static type analyzer
179
+ .pytype/
180
+
181
+ # Cython debug symbols
182
+ cython_debug/
183
+
184
+ # PyCharm
185
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
186
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
187
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
188
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
189
+ # .idea/
190
+
191
+ # Abstra
192
+ # Abstra is an AI-powered process automation framework.
193
+ # Ignore directories containing user credentials, local state, and settings.
194
+ # Learn more at https://abstra.io/docs
195
+ .abstra/
196
+
197
+ # Visual Studio Code
198
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
199
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
200
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
201
+ # you could uncomment the following to ignore the entire vscode folder
202
+ # .vscode/
203
+ # Temporary file for partial code execution
204
+ tempCodeRunnerFile.py
205
+
206
+ # Ruff stuff:
207
+ .ruff_cache/
208
+
209
+ # PyPI configuration file
210
+ .pypirc
211
+
212
+ # Marimo
213
+ marimo/_static/
214
+ marimo/_lsp/
215
+ __marimo__/
216
+
217
+ # Streamlit
218
+ .streamlit/secrets.toml
219
+
220
+ _internal/
221
+ private/
222
+ data/raw/
223
+ data/cache/
224
+ *.parquet
225
+ *.csv
226
+ *.xlsx
227
+ secrets/
228
+ credentials/
@@ -0,0 +1,23 @@
1
+ cat > LICENSE <<'EOF'
2
+ MIT License
3
+
4
+ Copyright (c) 2026 Mohamad Yassin
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the “Software”), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+ EOF
@@ -0,0 +1,110 @@
1
+ Metadata-Version: 2.4
2
+ Name: opentrash
3
+ Version: 0.0.0
4
+ Summary: Cloud-native geospatial tools for residential waste operations.
5
+ Project-URL: Homepage, https://github.com/OWNER/opentrash
6
+ Project-URL: Documentation, https://OWNER.github.io/opentrash/
7
+ Project-URL: Repository, https://github.com/OWNER/opentrash
8
+ Author: AI Research Corps (AIRC)
9
+ License: cat > LICENSE <<'EOF'
10
+ MIT License
11
+
12
+ Copyright (c) 2026 Mohamad Yassin
13
+
14
+ Permission is hereby granted, free of charge, to any person obtaining a copy
15
+ of this software and associated documentation files (the “Software”), to deal
16
+ in the Software without restriction, including without limitation the rights
17
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18
+ copies of the Software, and to permit persons to whom the Software is
19
+ furnished to do so, subject to the following conditions:
20
+
21
+ The above copyright notice and this permission notice shall be included in all
22
+ copies or substantial portions of the Software.
23
+
24
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
+ SOFTWARE.
31
+ EOF
32
+ License-File: LICENSE
33
+ Keywords: cloud-native,duckdb,geospatial,gis,routing,waste-management
34
+ Classifier: Development Status :: 1 - Planning
35
+ Classifier: Intended Audience :: Developers
36
+ Classifier: Intended Audience :: Science/Research
37
+ Classifier: Operating System :: OS Independent
38
+ Classifier: Programming Language :: Python :: 3
39
+ Classifier: Programming Language :: Python :: 3.11
40
+ Classifier: Topic :: Scientific/Engineering :: GIS
41
+ Requires-Python: >=3.11
42
+ Provides-Extra: dev
43
+ Requires-Dist: build; extra == 'dev'
44
+ Requires-Dist: pytest; extra == 'dev'
45
+ Requires-Dist: ruff; extra == 'dev'
46
+ Requires-Dist: twine; extra == 'dev'
47
+ Provides-Extra: docs
48
+ Requires-Dist: mkdocs-material; extra == 'docs'
49
+ Description-Content-Type: text/markdown
50
+
51
+ # opentrash
52
+
53
+ > Cloud-native geospatial tools for residential waste operations.
54
+
55
+ `opentrash` is an open source Python package for analyzing residential solid
56
+ waste collection operations using GPS telematics, enterprise waste-management
57
+ data, and municipal parcel layers. It produces **RouteView** — a self-contained
58
+ interactive HTML map for any route on any day — and detects per-parcel weekly
59
+ and biweekly service **patterns** over time.
60
+
61
+ The same tools enterprise fleet software sells for six figures, built on open
62
+ standards and open data, runnable on a laptop.
63
+
64
+ ## Status
65
+
66
+ 🚧 **Phase 0 — skeleton.** Version `0.0.0` is a name placeholder; the package is
67
+ not yet functional. It is being built lesson by lesson alongside its
68
+ documentation site and a public course.
69
+
70
+ ## What it will do
71
+
72
+ - **RouteView** — one route + one day → an interactive HTML map (route polygon,
73
+ GPS trail, landfill tips, parcels served vs missed, tonnage).
74
+ - **Patterns** — long GPS history → per-parcel weekly/biweekly service
75
+ signatures, as a portable parquet file RouteView can optionally consume.
76
+
77
+ ## Roadmap
78
+
79
+ - **RouteEdit** — interactive route-editing tool, sister to RouteView.
80
+ - **Sample synthetic data** — redistributable dataset for tutorials.
81
+ - **Cloud-hosted demo** — publicly browsable RouteView instance.
82
+ - **Hardware integrations** — RFID container reader, vehicle LiDAR.
83
+
84
+ ## Documentation
85
+
86
+ The documentation site is built with MkDocs Material and deployed to GitHub
87
+ Pages. To preview locally:
88
+
89
+ ```bash
90
+ pip install mkdocs-material
91
+ mkdocs serve
92
+ ```
93
+
94
+ ## Development
95
+
96
+ ```bash
97
+ conda create -n opentrash python=3.11 -y
98
+ conda activate opentrash
99
+ pip install -e ".[dev,docs]"
100
+ ```
101
+
102
+ ## License
103
+
104
+ Source-available under a non-commercial license. See [LICENSE](LICENSE).
105
+ Commercial licensing inquiries: contact AIRC.
106
+
107
+ ## About
108
+
109
+ An open source project under
110
+ [AI Research Corps (AIRC)](https://airesearchcorps.org/), a 501(c)(3) nonprofit.
@@ -0,0 +1,60 @@
1
+ # opentrash
2
+
3
+ > Cloud-native geospatial tools for residential waste operations.
4
+
5
+ `opentrash` is an open source Python package for analyzing residential solid
6
+ waste collection operations using GPS telematics, enterprise waste-management
7
+ data, and municipal parcel layers. It produces **RouteView** — a self-contained
8
+ interactive HTML map for any route on any day — and detects per-parcel weekly
9
+ and biweekly service **patterns** over time.
10
+
11
+ The same tools enterprise fleet software sells for six figures, built on open
12
+ standards and open data, runnable on a laptop.
13
+
14
+ ## Status
15
+
16
+ 🚧 **Phase 0 — skeleton.** Version `0.0.0` is a name placeholder; the package is
17
+ not yet functional. It is being built lesson by lesson alongside its
18
+ documentation site and a public course.
19
+
20
+ ## What it will do
21
+
22
+ - **RouteView** — one route + one day → an interactive HTML map (route polygon,
23
+ GPS trail, landfill tips, parcels served vs missed, tonnage).
24
+ - **Patterns** — long GPS history → per-parcel weekly/biweekly service
25
+ signatures, as a portable parquet file RouteView can optionally consume.
26
+
27
+ ## Roadmap
28
+
29
+ - **RouteEdit** — interactive route-editing tool, sister to RouteView.
30
+ - **Sample synthetic data** — redistributable dataset for tutorials.
31
+ - **Cloud-hosted demo** — publicly browsable RouteView instance.
32
+ - **Hardware integrations** — RFID container reader, vehicle LiDAR.
33
+
34
+ ## Documentation
35
+
36
+ The documentation site is built with MkDocs Material and deployed to GitHub
37
+ Pages. To preview locally:
38
+
39
+ ```bash
40
+ pip install mkdocs-material
41
+ mkdocs serve
42
+ ```
43
+
44
+ ## Development
45
+
46
+ ```bash
47
+ conda create -n opentrash python=3.11 -y
48
+ conda activate opentrash
49
+ pip install -e ".[dev,docs]"
50
+ ```
51
+
52
+ ## License
53
+
54
+ Source-available under a non-commercial license. See [LICENSE](LICENSE).
55
+ Commercial licensing inquiries: contact AIRC.
56
+
57
+ ## About
58
+
59
+ An open source project under
60
+ [AI Research Corps (AIRC)](https://airesearchcorps.org/), a 501(c)(3) nonprofit.
@@ -0,0 +1,8 @@
1
+ """opentrash — cloud-native geospatial tools for residential waste operations.
2
+
3
+ This package is being built lesson by lesson. At Phase 0 it is an empty
4
+ skeleton; each lesson adds a module (core, prep, tonnage, patterns, routeview,
5
+ and so on). See the course hub for the lesson series.
6
+ """
7
+
8
+ __version__ = "0.0.0"
@@ -0,0 +1,32 @@
1
+ # Builds the MkDocs documentation site and deploys it to the gh-pages branch
2
+ # on every push to main. Enable Pages in repo Settings -> Pages -> Deploy from
3
+ # branch -> gh-pages -> / (root).
4
+
5
+ name: Deploy docs
6
+
7
+ on:
8
+ push:
9
+ branches:
10
+ - main
11
+ workflow_dispatch:
12
+
13
+ permissions:
14
+ contents: write
15
+
16
+ jobs:
17
+ deploy:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - name: Check out repository
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: "3.11"
27
+
28
+ - name: Install docs dependencies
29
+ run: pip install mkdocs-material
30
+
31
+ - name: Build and deploy
32
+ run: mkdocs gh-deploy --force
@@ -0,0 +1,43 @@
1
+ # opentrash
2
+
3
+ > Cloud-native geospatial tools for residential waste operations.
4
+
5
+ !!! note "Work in progress"
6
+ This documentation site is being built lesson by lesson alongside the
7
+ package itself. Right now it's a skeleton — check back as the project grows.
8
+
9
+ `opentrash` is an open source Python package for analyzing residential solid
10
+ waste collection operations using GPS telematics, enterprise waste-management
11
+ data, and municipal parcel layers.
12
+
13
+ ## What it does
14
+
15
+ **RouteView** — given one route and one day, produces a self-contained
16
+ interactive HTML map: route polygon, GPS trail, landfill tips, parcels served
17
+ vs missed, and tonnage delivered.
18
+
19
+ **Patterns** — given a long GPS history, detects each parcel's weekly and
20
+ biweekly service signature. An optional companion to RouteView.
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ pip install opentrash
26
+ ```
27
+
28
+ !!! warning
29
+ The package is at version `0.0.0` (name placeholder). It is not yet
30
+ functional. Follow the project to know when the first usable release lands.
31
+
32
+ ## Learn how it's built
33
+
34
+ Want to understand how this package is built from scratch? There's a full
35
+ course that walks through it lesson by lesson. See the course hub (link to be
36
+ added).
37
+
38
+ ## About
39
+
40
+ `opentrash` is an open source project under
41
+ [AI Research Corps (AIRC)](https://airesearchcorps.org/), a 501(c)(3) nonprofit.
42
+
43
+ Source-available under a non-commercial license.
@@ -0,0 +1,51 @@
1
+ # MkDocs configuration for the opentrash documentation site.
2
+ # Grows lesson by lesson. At Phase 0 it serves a single placeholder page.
3
+
4
+ site_name: opentrash
5
+ site_description: Cloud-native geospatial tools for residential waste operations.
6
+ # Update these to your actual URLs once the repo and Pages exist.
7
+ site_url: https://OWNER.github.io/opentrash/
8
+ repo_url: https://github.com/OWNER/opentrash
9
+ repo_name: OWNER/opentrash
10
+
11
+ theme:
12
+ name: material
13
+ palette:
14
+ # Light mode
15
+ - scheme: default
16
+ primary: black
17
+ accent: cyan
18
+ toggle:
19
+ icon: material/weather-night
20
+ name: Switch to dark mode
21
+ # Dark mode
22
+ - scheme: slate
23
+ primary: black
24
+ accent: cyan
25
+ toggle:
26
+ icon: material/weather-sunny
27
+ name: Switch to light mode
28
+ features:
29
+ - navigation.instant
30
+ - navigation.tracking
31
+ - navigation.sections
32
+ - navigation.top
33
+ - search.suggest
34
+ - search.highlight
35
+ - content.code.copy
36
+
37
+ markdown_extensions:
38
+ - admonition
39
+ - pymdownx.details
40
+ - pymdownx.superfences
41
+ - pymdownx.highlight:
42
+ anchor_linenums: true
43
+ - pymdownx.inlinehilite
44
+ - toc:
45
+ permalink: true
46
+
47
+ nav:
48
+ - Home: index.md
49
+ # Lessons add pages here as the package grows, e.g.:
50
+ # - Getting started: getting-started.md
51
+ # - API reference: reference/...
@@ -0,0 +1,61 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "opentrash"
7
+ version = "0.0.0"
8
+ description = "Cloud-native geospatial tools for residential waste operations."
9
+ readme = "README.md"
10
+ requires-python = ">=3.11"
11
+ license = { file = "LICENSE" }
12
+ authors = [
13
+ { name = "AI Research Corps (AIRC)" },
14
+ ]
15
+ keywords = [
16
+ "geospatial",
17
+ "waste-management",
18
+ "gis",
19
+ "duckdb",
20
+ "routing",
21
+ "cloud-native",
22
+ ]
23
+ classifiers = [
24
+ "Development Status :: 1 - Planning",
25
+ "Intended Audience :: Science/Research",
26
+ "Intended Audience :: Developers",
27
+ "Operating System :: OS Independent",
28
+ "Programming Language :: Python :: 3",
29
+ "Programming Language :: Python :: 3.11",
30
+ "Topic :: Scientific/Engineering :: GIS",
31
+ ]
32
+
33
+ # Runtime dependencies are intentionally minimal at Phase 0.
34
+ # Lessons add these as the corresponding modules are built.
35
+ dependencies = []
36
+
37
+ [project.optional-dependencies]
38
+ # Documentation tooling (used to build the docs site).
39
+ docs = [
40
+ "mkdocs-material",
41
+ ]
42
+ # Development + testing tooling.
43
+ dev = [
44
+ "pytest",
45
+ "ruff",
46
+ "build",
47
+ "twine",
48
+ ]
49
+
50
+ [project.urls]
51
+ # Update these to your actual repo / docs URLs once they exist.
52
+ Homepage = "https://github.com/OWNER/opentrash"
53
+ Documentation = "https://OWNER.github.io/opentrash/"
54
+ Repository = "https://github.com/OWNER/opentrash"
55
+
56
+ [tool.hatch.build.targets.wheel]
57
+ packages = ["opentrash"]
58
+
59
+ [tool.ruff]
60
+ line-length = 100
61
+ target-version = "py311"