{"id":32513044,"url":"https://github.com/stav/crablox","last_synced_at":"2025-10-27T22:49:41.477Z","repository":{"id":270263349,"uuid":"909806786","full_name":"stav/crablox","owner":"stav","description":"Leading Indicators","archived":false,"fork":false,"pushed_at":"2025-07-18T02:13:23.000Z","size":5129,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-09T11:51:49.786Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stav.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-29T20:39:06.000Z","updated_at":"2025-06-06T14:21:18.000Z","dependencies_parsed_at":"2025-01-31T04:19:44.089Z","dependency_job_id":"76f4b8a7-8785-4d5f-a47a-b9e2ee92502b","html_url":"https://github.com/stav/crablox","commit_stats":null,"previous_names":["stav/crablox"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stav/crablox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stav%2Fcrablox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stav%2Fcrablox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stav%2Fcrablox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stav%2Fcrablox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stav","download_url":"https://codeload.github.com/stav/crablox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stav%2Fcrablox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281355354,"owners_count":26486896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-27T02:00:05.855Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-27T22:49:39.158Z","updated_at":"2025-10-27T22:49:41.469Z","avatar_url":"https://github.com/stav.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n\n## Install\n\n### Clone\n\n    ┌─[stav][legion][~/.../Python/FastHTML]\n    └─▪ git clone git@github.com:stav/crablox.git\n\n      Cloning into 'crablox'...\n      remote: Enumerating objects: 4, done.\n      remote: Counting objects: 100% (4/4), done.\n      remote: Compressing objects: 100% (4/4), done.\n      remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)\n      Receiving objects: 100% (4/4), done.\n\n### Virtual Environment\n\n    ┌─[stav][legion][±][master ✓][~/.../FastHTML/crablox]\n    └─▪ python  -m venv venv\n\n    ┌─[stav][legion][±][master ✓][~/.../FastHTML/crablox]\n    └─▪ . venv/bin/activate\n\n### Dependencies\n\n    ┌─(venv)[stav][legion][±][master ✓][~/.../FastHTML/crablox]\n    └─▪ pip install --upgrade pip\n\n    ┌─(venv)[stav][legion][±][master ✓][~/.../FastHTML/crablox]\n    └─▪ pip install python-fasthtml fh_altair requests pandas fa6-icons openpyxl yfinance\n\n      Looking in indexes: https://pypi.org/simple, https://packagecloud.io/github/git-lfs/pypi/simple\n      Collecting python-fasthtml\n        Downloading python_fasthtml-0.12.1-py3-none-any.whl.metadata (8.8 kB)\n      Collecting fh_altair\n        Using cached fh_altair-0.1.0-py2.py3-none-any.whl.metadata (1.5 kB)\n      Collecting requests\n        Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)\n      Collecting pandas\n        Downloading pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (89 kB)\n        ...\n\n### Structure\n\n    ┌─(venv)[stav][legion][±][master ✓][~/.../FastHTML/crablox]\n    └─▪ ls -lA\n\n      drwxr-xr-x 2 stav stav  4096 Dec 29 17:11 crablox/\n      drwxr-xr-x 9 stav stav  4096 Dec 29 17:15 .git/\n      -rw-r--r-- 1 stav stav  3415 Dec 29 15:39 .gitignore\n      -rw-r--r-- 1 stav stav  1211 Dec 29 15:39 LICENSE\n      -rw-r--r-- 1 stav stav 12790 Dec 29 17:13 README\n      -rw-r--r-- 1 stav stav   820 Dec 29 17:13 requirements.txt\n      drwxr-xr-x 5 stav stav  4096 Dec 29 15:44 venv/\n      drwxr-xr-x 2 stav stav  4096 Dec 29 17:13 .vscode/\n\n## Usage\n\nSource the virtual environment:\n\n    ┌─[stav][legion][±][master ✓][~/.../FastHTML/crablox]\n    └─▪ . venv/bin/activate\n\n## Development\n\nExplicit environment variables:\n\n    ┌─(venv)[stav][legion][±][trunk {1} U:3 ✗][~/.../FastHTML/crablox]\n    └─▪ export PORT=5001; export CRB=devel; python crablox/main.py\n\n      Using \"devel\" environment for \u003cfasthtml.live_reload.FastHTMLWithLiveReload object at 0x7f9dba9e5010\u003e\n      Link: http://localhost:5001\n      INFO:     Will watch for changes in these directories: ['/home/stav/Work/Python/FastHTML/crablox']\n      INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\n      INFO:     Started reloader process [12207] using WatchFiles\n      Using \"devel\" environment for \u003cfasthtml.live_reload.FastHTMLWithLiveReload object at 0x7f1bc6765550\u003e\n      Using \"devel\" environment for \u003cfasthtml.live_reload.FastHTMLWithLiveReload object at 0x7f1bc5d0d590\u003e\n      INFO:     Started server process [12224]\n      INFO:     Waiting for application startup.\n      INFO:     Application startup complete.\n\n## Scripts\n\nThese scripts automate data extraction.\n\n### ISM Manufacturing\n\nRun the script:\n\n    python scripts/ism-mfg.py\n\n### ISM Services\n\nChange the `url` at the top to reflect the desired month:\n\n    url = \".../ism-report-on-business/services/may/\"\n\nRun the script:\n\n    python scripts/ism-srv.py\n\n## Environments\n\n### Development\n\n    ┌─(venv)[stav][legion][±][trunk {1} U:3 ✗][~/.../FastHTML/crablox]\n    └─▪ python --version\n\n      Python 3.13.1\n\n    ┌─(venv)[stav][legion][±][master ?:1 ✗][~/.../FastHTML/crablox]\n    └─▪ CRB=devel python crablox/main.py\n\n### Production\n\nCopy `config.ini` and `data/US Stock Data 4-25-25.xlsx`.\n\n`config.ini`:\n\n    [CMC]\n    API_KEY = 136991d4-...\n    [SPEECHIFY]\n    API_KEY = zBgl5nYL3T6DHa-...\n    [DEFAULT]\n    AUTH_USERNAME = ...\n\nCheck Python version.\n\n    (venv) stav@bullet:.../services.pmx.mega/crablox$ python --version\n\n      Python 3.11.2\n\nStart the server.\n\n    (venv) stav@bullet:.../services.pmx.mega/crablox$ PORT=5001 python crablox/main.py\n\n## Sites\n\n* https://docs.fastht.ml/\n* https://gallery.fastht.ml/\n* https://mikelev.in/futureproof/unpacking-fasthtml-databases/\n* https://github.com/AnswerDotAI/fasthtml-example\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstav%2Fcrablox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstav%2Fcrablox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstav%2Fcrablox/lists"}