├── README.md ├── fetch.sh ├── .github └── workflows │ └── fetch.yml ├── packages.txt └── packages ├── datasette-show-errors.json ├── genome-to-sqlite.json ├── dbf-to-sqlite.json ├── fec-to-sqlite.json ├── datasette-configure-asgi.json ├── google-takeout-to-sqlite.json ├── inaturalist-to-sqlite.json ├── datasette-jq.json ├── datasette-pyinstrument.json ├── datasette-explain.json ├── datasette-psutil.json ├── mbox-to-sqlite.json ├── datasette-hovercards.json ├── json-to-files.json ├── apple-notes-to-sqlite.json ├── datasette-bplist.json ├── datasette-render-image-tags.json ├── datasette-cors.json ├── datasette-verify.json ├── datasette-multiline-links.json ├── datasette-placekey.json ├── datasette-external-links-new-tabs.json ├── datasette-template-request.json ├── datasette-redirect-forbidden.json ├── datasette-x-forwarded-host.json ├── datasette-expose-env.json ├── datasette-youtube-embed.json ├── datasette-matomo.json ├── datasette-column-inspect.json ├── datasette-export.json ├── datasette-haversine.json └── datasette-total-page-time.json /README.md: -------------------------------------------------------------------------------- 1 | # pypi-datasette-packages 2 | Archive PyPI JSON information for all Datasette related packages 3 | -------------------------------------------------------------------------------- /fetch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mkdir -p packages 3 | while read package; do 4 | curl -s "https://pypi.org/pypi/$package/json" | jq > "packages/$package.json" 5 | sleep 1 6 | done < packages.txt 7 | -------------------------------------------------------------------------------- /.github/workflows/fetch.yml: -------------------------------------------------------------------------------- 1 | name: Fetch latest data 2 | 3 | on: 4 | push: 5 | workflow_dispatch: 6 | schedule: 7 | - cron: '51 3 * * *' # Once a day 8 | 9 | jobs: 10 | fetch: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v2 14 | - name: Set up Python 3.10 15 | uses: actions/setup-python@v2 16 | with: 17 | python-version: "3.10" 18 | - name: Fetch 19 | run: ./fetch.sh 20 | - name: Commit and push 21 | run: |- 22 | git config user.name "Automated" 23 | git config user.email "actions@users.noreply.github.com" 24 | git add -A 25 | timestamp=$(date -u) 26 | git commit -m "${timestamp}" || exit 0 27 | echo '### Changed files' >> $GITHUB_STEP_SUMMARY 28 | echo '```' >> $GITHUB_STEP_SUMMARY 29 | git show --name-only --format=tformat: >> $GITHUB_STEP_SUMMARY 30 | echo '```' >> $GITHUB_STEP_SUMMARY 31 | git pull --rebase 32 | git push 33 | -------------------------------------------------------------------------------- /packages.txt: -------------------------------------------------------------------------------- 1 | airtable-export 2 | csv-diff 3 | csvs-to-sqlite 4 | datasette 5 | datasette-atom 6 | datasette-auth-existing-cookies 7 | datasette-auth-github 8 | datasette-auth-passwords 9 | datasette-auth-tokens 10 | datasette-auth0 11 | datasette-backup 12 | datasette-basemap 13 | datasette-block 14 | datasette-block-robots 15 | datasette-bplist 16 | datasette-clone 17 | datasette-cluster-map 18 | datasette-column-inspect 19 | datasette-configure-asgi 20 | datasette-configure-fts 21 | datasette-copyable 22 | datasette-cors 23 | datasette-css-properties 24 | datasette-dateutil 25 | datasette-debug-asgi 26 | datasette-edit-schema 27 | datasette-export-notebook 28 | datasette-geojson 29 | datasette-geojson-map 30 | datasette-glitch 31 | datasette-graphql 32 | datasette-hashed-urls 33 | datasette-haversine 34 | datasette-hovercards 35 | datasette-ics 36 | datasette-import-table 37 | datasette-indieauth 38 | datasette-init 39 | datasette-insert 40 | datasette-jellyfish 41 | datasette-jq 42 | datasette-json-html 43 | datasette-jupyterlite 44 | datasette-leaflet 45 | datasette-leaflet-freedraw 46 | datasette-leaflet-geojson 47 | datasette-mask-columns 48 | datasette-media 49 | datasette-packages 50 | datasette-permissions-sql 51 | datasette-placekey 52 | datasette-pretty-json 53 | datasette-pretty-traces 54 | datasette-psutil 55 | datasette-publish-fly 56 | datasette-publish-vercel 57 | datasette-pyinstrument 58 | datasette-query-history 59 | datasette-query-links 60 | datasette-redirect-forbidden 61 | datasette-redirect-to-https 62 | datasette-remote-metadata 63 | datasette-render-binary 64 | datasette-render-html 65 | datasette-render-images 66 | datasette-render-markdown 67 | datasette-render-timestamps 68 | datasette-ripgrep 69 | datasette-rure 70 | datasette-saved-queries 71 | datasette-schema-versions 72 | datasette-scraper 73 | datasette-seaborn 74 | datasette-search-all 75 | datasette-sentry 76 | datasette-show-errors 77 | datasette-sqlite-fts4 78 | datasette-template-request 79 | datasette-template-sql 80 | datasette-tiddlywiki 81 | datasette-tiles 82 | datasette-upload-csvs 83 | datasette-vega 84 | datasette-verify 85 | datasette-write 86 | datasette-x-forwarded-host 87 | datasette-yaml 88 | db-to-sqlite 89 | dbf-to-sqlite 90 | django-sql-dashboard 91 | dogsheep-beta 92 | dogsheep-photos 93 | download-tiles 94 | evernote-to-sqlite 95 | fec-to-sqlite 96 | genome-to-sqlite 97 | geocode-sqlite 98 | geojson-to-sqlite 99 | git-history 100 | github-to-sqlite 101 | google-drive-to-sqlite 102 | google-takeout-to-sqlite 103 | hacker-news-to-sqlite 104 | healthkit-to-sqlite 105 | inaturalist-to-sqlite 106 | markdown-to-sqlite 107 | pocket-to-sqlite 108 | s3-credentials 109 | shapefile-to-sqlite 110 | shot-scraper 111 | sphinx-to-sqlite 112 | sqlite-colorbrewer 113 | sqlite-diffable 114 | sqlite-generate 115 | sqlite-transform 116 | sqlite-utils 117 | swarm-to-sqlite 118 | tableau-to-sqlite 119 | twitter-to-sqlite 120 | yaml-to-sqlite 121 | datasette-dashboards 122 | pypi-to-sqlite 123 | datasette-total-page-time 124 | datasette-nteract-data-explorer 125 | datasette-gzip 126 | datasette-copy-to-memory 127 | datasette-upload-dbs 128 | mbox-to-sqlite 129 | datasette-socrata 130 | datasette-scale-to-zero 131 | s3-ocr 132 | datasette-expose-env 133 | sqlite-comprehend 134 | datasette-query-files 135 | datasette-mp3-audio 136 | datasette-multiline-links 137 | datasette-sitemap 138 | datasette-render-image-tags 139 | datasette-sandstorm-support 140 | datasette-edit-templates 141 | datasette-public 142 | datasette-gunicorn 143 | datasette-external-links-new-tabs 144 | datasette-export 145 | datasette-ephemeral-tables 146 | dclient 147 | datasette-secret-santa 148 | datasette-openai 149 | datasette-cookies-for-magic-parameters 150 | datasette-faiss 151 | openai-to-sqlite 152 | json-to-files 153 | datasette-simple-html 154 | datasette-youtube-embed 155 | datasette-codespaces 156 | datasette-explain 157 | datasette-matomo 158 | apple-notes-to-sqlite 159 | datasette-chatgpt-plugin 160 | -------------------------------------------------------------------------------- /packages/datasette-show-errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-show-errors\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-show-errors.svg)](https://pypi.org/project/datasette-show-errors/)\n[![CircleCI](https://circleci.com/gh/simonw/datasette-show-errors.svg?style=svg)](https://circleci.com/gh/simonw/datasette-show-errors)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-show-errors/blob/master/LICENSE)\n\nDatasette plugin for displaying error tracebacks.\n\n## Installation\n\n pip install datasette-show-errors\n\n## Usage\n\nInstalling the plugin will cause any internal error to be displayed with a full traceback, rather than just a generic 500 page.\n\nBe careful not to use this in a context that might expose sensitive information.\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-show-errors", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-show-errors", 22 | "package_url": "https://pypi.org/project/datasette-show-errors/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-show-errors/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/simonw/datasette-show-errors" 27 | }, 28 | "release_url": "https://pypi.org/project/datasette-show-errors/0.2/", 29 | "requires_dist": [ 30 | "starlette", 31 | "datasette", 32 | "pytest ; extra == 'test'" 33 | ], 34 | "requires_python": "", 35 | "summary": "Datasette plugin for displaying error tracebacks", 36 | "version": "0.2", 37 | "yanked": false, 38 | "yanked_reason": null 39 | }, 40 | "last_serial": 6856003, 41 | "releases": { 42 | "0.2": [ 43 | { 44 | "comment_text": "", 45 | "digests": { 46 | "blake2b_256": "fb6c59c5cd375392c0780e46ddbfd81798051d8117170defe0e2087166316f46", 47 | "md5": "bbdd92670d26d68b5622b183bb233bbc", 48 | "sha256": "cbc9dda3970e01e4b0ac00bb976fe285f4cb649cfe76955bf4d3e3915cf06993" 49 | }, 50 | "downloads": -1, 51 | "filename": "datasette_show_errors-0.2-py3-none-any.whl", 52 | "has_sig": false, 53 | "md5_digest": "bbdd92670d26d68b5622b183bb233bbc", 54 | "packagetype": "bdist_wheel", 55 | "python_version": "py3", 56 | "requires_python": null, 57 | "size": 6294, 58 | "upload_time": "2020-03-21T15:42:44", 59 | "upload_time_iso_8601": "2020-03-21T15:42:44.670250Z", 60 | "url": "https://files.pythonhosted.org/packages/fb/6c/59c5cd375392c0780e46ddbfd81798051d8117170defe0e2087166316f46/datasette_show_errors-0.2-py3-none-any.whl", 61 | "yanked": false, 62 | "yanked_reason": null 63 | } 64 | ] 65 | }, 66 | "urls": [ 67 | { 68 | "comment_text": "", 69 | "digests": { 70 | "blake2b_256": "fb6c59c5cd375392c0780e46ddbfd81798051d8117170defe0e2087166316f46", 71 | "md5": "bbdd92670d26d68b5622b183bb233bbc", 72 | "sha256": "cbc9dda3970e01e4b0ac00bb976fe285f4cb649cfe76955bf4d3e3915cf06993" 73 | }, 74 | "downloads": -1, 75 | "filename": "datasette_show_errors-0.2-py3-none-any.whl", 76 | "has_sig": false, 77 | "md5_digest": "bbdd92670d26d68b5622b183bb233bbc", 78 | "packagetype": "bdist_wheel", 79 | "python_version": "py3", 80 | "requires_python": null, 81 | "size": 6294, 82 | "upload_time": "2020-03-21T15:42:44", 83 | "upload_time_iso_8601": "2020-03-21T15:42:44.670250Z", 84 | "url": "https://files.pythonhosted.org/packages/fb/6c/59c5cd375392c0780e46ddbfd81798051d8117170defe0e2087166316f46/datasette_show_errors-0.2-py3-none-any.whl", 85 | "yanked": false, 86 | "yanked_reason": null 87 | } 88 | ], 89 | "vulnerabilities": [] 90 | } 91 | -------------------------------------------------------------------------------- /packages/genome-to-sqlite.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# genome-to-sqlite\n\n[![PyPI](https://img.shields.io/pypi/v/genome-to-sqlite.svg)](https://pypi.org/project/genome-to-sqlite/)\n[![CircleCI](https://circleci.com/gh/dogsheep/genome-to-sqlite.svg?style=svg)](https://circleci.com/gh/dogsheep/genome-to-sqlite)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/dogsheep/genome-to-sqlite/blob/master/LICENSE)\n\nImport your genome into a SQLite database.\n\n## How to install\n\n $ pip install genome-to-sqlite\n\n## How to use\n\nFirst, export your genome. This tool has only been tested against 23andMe so far. You can request an export of your genome from https://you.23andme.com/tools/data/download/\n\nNow you can convert the resulting `export.zip` file to SQLite like so:\n\n $ genome-to-sqlite export.zip genome.db\n\nA progress bar will be displayed. You can disable this using `--silent`.\n\n```\nImporting genome [#----------------] 5% 00:01:33\n```\n\nYou can explore the resulting data using [Datasette](https://datasette.readthedocs.io/) like this:\n\n $ datasette genome.db --config facet_time_limit_ms:1000\n\nBumping up the facet time limit is useful in order to enable faceting by chromosome:\n\nhttp://127.0.0.1:8001/genome/genome?_facet=chromosome&_sort=position\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/dogsheep/genome-to-sqlite", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "genome-to-sqlite", 22 | "package_url": "https://pypi.org/project/genome-to-sqlite/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/genome-to-sqlite/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/dogsheep/genome-to-sqlite" 27 | }, 28 | "release_url": "https://pypi.org/project/genome-to-sqlite/0.1/", 29 | "requires_dist": [ 30 | "sqlite-utils", 31 | "pytest ; extra == 'test'" 32 | ], 33 | "requires_python": "", 34 | "summary": "Import your genome into a SQLite database", 35 | "version": "0.1", 36 | "yanked": false, 37 | "yanked_reason": null 38 | }, 39 | "last_serial": 5857257, 40 | "releases": { 41 | "0.1": [ 42 | { 43 | "comment_text": "", 44 | "digests": { 45 | "blake2b_256": "69e465cd5db4012b5beda9f50252d0f6c931483f794d0c8216d4a77fcbd76a99", 46 | "md5": "60cf0093881887de4e5bee61611460ac", 47 | "sha256": "92b309b8dc1d99b71cd626a0e617bd346f7fe40953e422916fc1404908c9cc23" 48 | }, 49 | "downloads": -1, 50 | "filename": "genome_to_sqlite-0.1-py3-none-any.whl", 51 | "has_sig": false, 52 | "md5_digest": "60cf0093881887de4e5bee61611460ac", 53 | "packagetype": "bdist_wheel", 54 | "python_version": "py3", 55 | "requires_python": null, 56 | "size": 7720, 57 | "upload_time": "2019-09-19T15:41:54", 58 | "upload_time_iso_8601": "2019-09-19T15:41:54.814429Z", 59 | "url": "https://files.pythonhosted.org/packages/69/e4/65cd5db4012b5beda9f50252d0f6c931483f794d0c8216d4a77fcbd76a99/genome_to_sqlite-0.1-py3-none-any.whl", 60 | "yanked": false, 61 | "yanked_reason": null 62 | } 63 | ] 64 | }, 65 | "urls": [ 66 | { 67 | "comment_text": "", 68 | "digests": { 69 | "blake2b_256": "69e465cd5db4012b5beda9f50252d0f6c931483f794d0c8216d4a77fcbd76a99", 70 | "md5": "60cf0093881887de4e5bee61611460ac", 71 | "sha256": "92b309b8dc1d99b71cd626a0e617bd346f7fe40953e422916fc1404908c9cc23" 72 | }, 73 | "downloads": -1, 74 | "filename": "genome_to_sqlite-0.1-py3-none-any.whl", 75 | "has_sig": false, 76 | "md5_digest": "60cf0093881887de4e5bee61611460ac", 77 | "packagetype": "bdist_wheel", 78 | "python_version": "py3", 79 | "requires_python": null, 80 | "size": 7720, 81 | "upload_time": "2019-09-19T15:41:54", 82 | "upload_time_iso_8601": "2019-09-19T15:41:54.814429Z", 83 | "url": "https://files.pythonhosted.org/packages/69/e4/65cd5db4012b5beda9f50252d0f6c931483f794d0c8216d4a77fcbd76a99/genome_to_sqlite-0.1-py3-none-any.whl", 84 | "yanked": false, 85 | "yanked_reason": null 86 | } 87 | ], 88 | "vulnerabilities": [] 89 | } 90 | -------------------------------------------------------------------------------- /packages/dbf-to-sqlite.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Development Status :: 3 - Alpha", 8 | "Intended Audience :: Developers", 9 | "Intended Audience :: End Users/Desktop", 10 | "Intended Audience :: Science/Research", 11 | "License :: OSI Approved :: Apache Software License", 12 | "Programming Language :: Python :: 3.6", 13 | "Programming Language :: Python :: 3.7", 14 | "Topic :: Database" 15 | ], 16 | "description": "# dbf-to-sqlite\n\n[![PyPI](https://img.shields.io/pypi/v/dbf-to-sqlite.svg)](https://pypi.python.org/pypi/dbf-to-sqlite)\n[![Travis CI](https://travis-ci.com/simonw/dbf-to-sqlite.svg?branch=master)](https://travis-ci.com/simonw/dbf-to-sqlite)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/dbf-to-sqlite/blob/master/LICENSE)\n\n\nCLI tool for converting DBF files (dBase, FoxPro etc) to SQLite.\n\n $ dbf-to-sqlite --help\n Usage: dbf-to-sqlite [OPTIONS] DBF_PATHS... SQLITE_DB\n\n Convert DBF files (dBase, FoxPro etc) to SQLite\n\n https://github.com/simonw/dbf-to-sqlite\n\n Options:\n --version Show the version and exit.\n --table TEXT Table name to use (only valid for single files)\n -v, --verbose Show what's going on\n --help Show this message and exit.\n\nExample usage:\n\n $ dbf-to-sqlite *.DBF database.db\n\nThis will create a new SQLite database called `database.db` containing one table for each of the `DBF` files in the current directory.\n\nLooking for DBF files to try this out on? Try downloading the [Himalayan Database](http://himalayandatabase.com/) of all expeditions that have climbed in the Nepal Himalaya.\n\n\n", 17 | "description_content_type": "text/markdown", 18 | "docs_url": null, 19 | "download_url": "", 20 | "downloads": { 21 | "last_day": -1, 22 | "last_month": -1, 23 | "last_week": -1 24 | }, 25 | "home_page": "https://github.com/simonw/dbf-to-sqlite", 26 | "keywords": "", 27 | "license": "Apache License, Version 2.0", 28 | "maintainer": "", 29 | "maintainer_email": "", 30 | "name": "dbf-to-sqlite", 31 | "package_url": "https://pypi.org/project/dbf-to-sqlite/", 32 | "platform": "", 33 | "project_url": "https://pypi.org/project/dbf-to-sqlite/", 34 | "project_urls": { 35 | "Homepage": "https://github.com/simonw/dbf-to-sqlite" 36 | }, 37 | "release_url": "https://pypi.org/project/dbf-to-sqlite/0.1/", 38 | "requires_dist": [ 39 | "dbf (==0.97.11)", 40 | "click", 41 | "sqlite-utils" 42 | ], 43 | "requires_python": "", 44 | "summary": "CLCLI tool for converting DBF files (dBase, FoxPro etc) to SQLite", 45 | "version": "0.1", 46 | "yanked": false, 47 | "yanked_reason": null 48 | }, 49 | "last_serial": 4762670, 50 | "releases": { 51 | "0.1": [ 52 | { 53 | "comment_text": "", 54 | "digests": { 55 | "blake2b_256": "0872dd3b3f8a55c49d29bc0a209aaf1bff7e1caac5e59be7ecba2dd9d2ddea37", 56 | "md5": "283d752eba513e69c75ce735948a5c6c", 57 | "sha256": "555b7e21c2314a43554050587e482ed0baa36b8ec9f94f7891bf94f26c1662fb" 58 | }, 59 | "downloads": -1, 60 | "filename": "dbf_to_sqlite-0.1-py3-none-any.whl", 61 | "has_sig": false, 62 | "md5_digest": "283d752eba513e69c75ce735948a5c6c", 63 | "packagetype": "bdist_wheel", 64 | "python_version": "py3", 65 | "requires_python": null, 66 | "size": 7119, 67 | "upload_time": "2019-01-31T06:39:56", 68 | "upload_time_iso_8601": "2019-01-31T06:39:56.636662Z", 69 | "url": "https://files.pythonhosted.org/packages/08/72/dd3b3f8a55c49d29bc0a209aaf1bff7e1caac5e59be7ecba2dd9d2ddea37/dbf_to_sqlite-0.1-py3-none-any.whl", 70 | "yanked": false, 71 | "yanked_reason": null 72 | } 73 | ] 74 | }, 75 | "urls": [ 76 | { 77 | "comment_text": "", 78 | "digests": { 79 | "blake2b_256": "0872dd3b3f8a55c49d29bc0a209aaf1bff7e1caac5e59be7ecba2dd9d2ddea37", 80 | "md5": "283d752eba513e69c75ce735948a5c6c", 81 | "sha256": "555b7e21c2314a43554050587e482ed0baa36b8ec9f94f7891bf94f26c1662fb" 82 | }, 83 | "downloads": -1, 84 | "filename": "dbf_to_sqlite-0.1-py3-none-any.whl", 85 | "has_sig": false, 86 | "md5_digest": "283d752eba513e69c75ce735948a5c6c", 87 | "packagetype": "bdist_wheel", 88 | "python_version": "py3", 89 | "requires_python": null, 90 | "size": 7119, 91 | "upload_time": "2019-01-31T06:39:56", 92 | "upload_time_iso_8601": "2019-01-31T06:39:56.636662Z", 93 | "url": "https://files.pythonhosted.org/packages/08/72/dd3b3f8a55c49d29bc0a209aaf1bff7e1caac5e59be7ecba2dd9d2ddea37/dbf_to_sqlite-0.1-py3-none-any.whl", 94 | "yanked": false, 95 | "yanked_reason": null 96 | } 97 | ], 98 | "vulnerabilities": [] 99 | } 100 | -------------------------------------------------------------------------------- /packages/fec-to-sqlite.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# fec-to-sqlite\n\n[![PyPI](https://img.shields.io/pypi/v/fec-to-sqlite.svg)](https://pypi.org/project/fec-to-sqlite/)\n[![CircleCI](https://circleci.com/gh/simonw/fec-to-sqlite.svg?style=svg)](https://circleci.com/gh/simonw/fec-to-sqlite)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/fec-to-sqlite/blob/master/LICENSE)\n\nCreate a SQLite database using FEC campaign contributions data.\n\nThis tool builds on [fecfile](https://github.com/esonderegger/) by Evan Sonderegger.\n\n## How to install\n\n $ pip install fec-to-sqlite\n\n## Usage\n\n $ fec-to-sqlite filings filings.db 1146148\n\nThis fetches the filing with ID `1146148` and stores it in tables in a SQLite database called `filings.db`. It will create any tables it needs.\n\nYou can pass more than one filing ID, separated by spaces.\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/dogsheep/fec-to-sqlite", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "fec-to-sqlite", 22 | "package_url": "https://pypi.org/project/fec-to-sqlite/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/fec-to-sqlite/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/dogsheep/fec-to-sqlite" 27 | }, 28 | "release_url": "https://pypi.org/project/fec-to-sqlite/0.2/", 29 | "requires_dist": [ 30 | "sqlite-utils", 31 | "click", 32 | "requests", 33 | "fecfile", 34 | "tqdm", 35 | "pytest ; extra == 'test'" 36 | ], 37 | "requires_python": "", 38 | "summary": "Save FEC campaign finance data to a SQLite database", 39 | "version": "0.2", 40 | "yanked": false, 41 | "yanked_reason": null 42 | }, 43 | "last_serial": 6768957, 44 | "releases": { 45 | "0.1": [ 46 | { 47 | "comment_text": "", 48 | "digests": { 49 | "blake2b_256": "22bc2da346e28c596a480ef1921df1492633ce42cd8c64a7f738065e7aa7bb87", 50 | "md5": "3e91931f4f4be1e1dccc002ce47fea54", 51 | "sha256": "48460d9194f53825e8b31c0e1f690dacc9d1ba91fb1703db2a61836cb5693edc" 52 | }, 53 | "downloads": -1, 54 | "filename": "fec_to_sqlite-0.1-py3-none-any.whl", 55 | "has_sig": false, 56 | "md5_digest": "3e91931f4f4be1e1dccc002ce47fea54", 57 | "packagetype": "bdist_wheel", 58 | "python_version": "py3", 59 | "requires_python": null, 60 | "size": 7153, 61 | "upload_time": "2020-03-07T16:59:58", 62 | "upload_time_iso_8601": "2020-03-07T16:59:58.375266Z", 63 | "url": "https://files.pythonhosted.org/packages/22/bc/2da346e28c596a480ef1921df1492633ce42cd8c64a7f738065e7aa7bb87/fec_to_sqlite-0.1-py3-none-any.whl", 64 | "yanked": false, 65 | "yanked_reason": null 66 | } 67 | ], 68 | "0.2": [ 69 | { 70 | "comment_text": "", 71 | "digests": { 72 | "blake2b_256": "02f78529930b9df618a214bb4df2be2b33ecbc6b15f6d4d7c5f5443fe1cf2a54", 73 | "md5": "fb7f337761a8aa58baf31f06db088248", 74 | "sha256": "dfdb74903a2669ba86139cd522c3e1648b8182869cba4fe5f31b863374fdb7a0" 75 | }, 76 | "downloads": -1, 77 | "filename": "fec_to_sqlite-0.2-py3-none-any.whl", 78 | "has_sig": false, 79 | "md5_digest": "fb7f337761a8aa58baf31f06db088248", 80 | "packagetype": "bdist_wheel", 81 | "python_version": "py3", 82 | "requires_python": null, 83 | "size": 7820, 84 | "upload_time": "2020-03-07T18:22:40", 85 | "upload_time_iso_8601": "2020-03-07T18:22:40.313849Z", 86 | "url": "https://files.pythonhosted.org/packages/02/f7/8529930b9df618a214bb4df2be2b33ecbc6b15f6d4d7c5f5443fe1cf2a54/fec_to_sqlite-0.2-py3-none-any.whl", 87 | "yanked": false, 88 | "yanked_reason": null 89 | } 90 | ] 91 | }, 92 | "urls": [ 93 | { 94 | "comment_text": "", 95 | "digests": { 96 | "blake2b_256": "02f78529930b9df618a214bb4df2be2b33ecbc6b15f6d4d7c5f5443fe1cf2a54", 97 | "md5": "fb7f337761a8aa58baf31f06db088248", 98 | "sha256": "dfdb74903a2669ba86139cd522c3e1648b8182869cba4fe5f31b863374fdb7a0" 99 | }, 100 | "downloads": -1, 101 | "filename": "fec_to_sqlite-0.2-py3-none-any.whl", 102 | "has_sig": false, 103 | "md5_digest": "fb7f337761a8aa58baf31f06db088248", 104 | "packagetype": "bdist_wheel", 105 | "python_version": "py3", 106 | "requires_python": null, 107 | "size": 7820, 108 | "upload_time": "2020-03-07T18:22:40", 109 | "upload_time_iso_8601": "2020-03-07T18:22:40.313849Z", 110 | "url": "https://files.pythonhosted.org/packages/02/f7/8529930b9df618a214bb4df2be2b33ecbc6b15f6d4d7c5f5443fe1cf2a54/fec_to_sqlite-0.2-py3-none-any.whl", 111 | "yanked": false, 112 | "yanked_reason": null 113 | } 114 | ], 115 | "vulnerabilities": [] 116 | } 117 | -------------------------------------------------------------------------------- /packages/datasette-configure-asgi.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-configure-asgi\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-configure-asgi.svg)](https://pypi.org/project/datasette-configure-asgi/)\n[![CircleCI](https://circleci.com/gh/simonw/datasette-configure-asgi.svg?style=svg)](https://circleci.com/gh/simonw/datasette-configure-asgi)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-configure-asgi/blob/master/LICENSE)\n\nDatasette plugin for configuring arbitrary ASGI middleware\n\n## Installation\n\n pip install datasette-configure-asgi\n\n## Usage\n\nThis plugin only takes effect if your `metadata.json` file contains relevant top-level plugin configuration in a `\"datasette-configure-asgi\"` configuration key.\n\nFor example, to wrap your Datasette instance in the `asgi-log-to-sqlite` middleware configured to write logs to `/tmp/log.db` you would use the following:\n\n```json\n{\n \"plugins\": {\n \"datasette-configure-asgi\": [\n {\n \"class\": \"asgi_log_to_sqlite.AsgiLogToSqlite\",\n \"args\": {\n \"file\": \"/tmp/log.db\"\n }\n }\n ]\n }\n}\n```\n\nThe `\"datasette-configure-asgi\"` key should be a list of JSON objects. Each object should have a `\"class\"` key indicating the class to be used, and an optional `\"args\"` key providing any necessary arguments to be passed to that class constructor.\n\n## Plugin structure\n\nThis plugin can be used to wrap your Datasette instance in any ASGI middleware that conforms to the following structure:\n\n```python\nclass SomeAsgiMiddleware:\n def __init__(self, app, arg1, arg2):\n self.app = app\n self.arg1 = arg1\n self.arg2 = arg2\n\n async def __call__(self, scope, receive, send):\n start = time.time()\n await self.app(scope, receive, send)\n end = time.time()\n print(\"Time taken: {}\".format(end - start))\n```\n\nSo the middleware is a class with a constructor which takes the wrapped application as a first argument, `app`, followed by further named arguments to configure the middleware. It provides an `async def __call__(self, scope, receive, send)` method to implement the middleware's behavior.\n\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-configure-asgi", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-configure-asgi", 22 | "package_url": "https://pypi.org/project/datasette-configure-asgi/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-configure-asgi/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/simonw/datasette-configure-asgi" 27 | }, 28 | "release_url": "https://pypi.org/project/datasette-configure-asgi/0.1/", 29 | "requires_dist": [ 30 | "pytest ; extra == 'test'", 31 | "pytest-asyncio ; extra == 'test'", 32 | "asgiref (==3.1.2) ; extra == 'test'", 33 | "datasette ; extra == 'test'" 34 | ], 35 | "requires_python": "", 36 | "summary": "Datasette plugin for configuring arbitrary ASGI middleware", 37 | "version": "0.1", 38 | "yanked": false, 39 | "yanked_reason": null 40 | }, 41 | "last_serial": 6314159, 42 | "releases": { 43 | "0.1": [ 44 | { 45 | "comment_text": "", 46 | "digests": { 47 | "blake2b_256": "f776c2ae1907ff0c5e8f3366c2041c1d73019b7825d6948ce880eb3ddf60be20", 48 | "md5": "79b55380adfb541b4c33cf952eb9264e", 49 | "sha256": "2061cf5184f5d9aaa7909f6fef54702c2595fcc731bdd4472518c07ce3fa8cb2" 50 | }, 51 | "downloads": -1, 52 | "filename": "datasette_configure_asgi-0.1-py3-none-any.whl", 53 | "has_sig": false, 54 | "md5_digest": "79b55380adfb541b4c33cf952eb9264e", 55 | "packagetype": "bdist_wheel", 56 | "python_version": "py3", 57 | "requires_python": null, 58 | "size": 7012, 59 | "upload_time": "2019-12-16T22:20:35", 60 | "upload_time_iso_8601": "2019-12-16T22:20:35.354777Z", 61 | "url": "https://files.pythonhosted.org/packages/f7/76/c2ae1907ff0c5e8f3366c2041c1d73019b7825d6948ce880eb3ddf60be20/datasette_configure_asgi-0.1-py3-none-any.whl", 62 | "yanked": false, 63 | "yanked_reason": null 64 | } 65 | ] 66 | }, 67 | "urls": [ 68 | { 69 | "comment_text": "", 70 | "digests": { 71 | "blake2b_256": "f776c2ae1907ff0c5e8f3366c2041c1d73019b7825d6948ce880eb3ddf60be20", 72 | "md5": "79b55380adfb541b4c33cf952eb9264e", 73 | "sha256": "2061cf5184f5d9aaa7909f6fef54702c2595fcc731bdd4472518c07ce3fa8cb2" 74 | }, 75 | "downloads": -1, 76 | "filename": "datasette_configure_asgi-0.1-py3-none-any.whl", 77 | "has_sig": false, 78 | "md5_digest": "79b55380adfb541b4c33cf952eb9264e", 79 | "packagetype": "bdist_wheel", 80 | "python_version": "py3", 81 | "requires_python": null, 82 | "size": 7012, 83 | "upload_time": "2019-12-16T22:20:35", 84 | "upload_time_iso_8601": "2019-12-16T22:20:35.354777Z", 85 | "url": "https://files.pythonhosted.org/packages/f7/76/c2ae1907ff0c5e8f3366c2041c1d73019b7825d6948ce880eb3ddf60be20/datasette_configure_asgi-0.1-py3-none-any.whl", 86 | "yanked": false, 87 | "yanked_reason": null 88 | } 89 | ], 90 | "vulnerabilities": [] 91 | } 92 | -------------------------------------------------------------------------------- /packages/google-takeout-to-sqlite.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# google-takeout-to-sqlite\n\n[![PyPI](https://img.shields.io/pypi/v/google-takeout-to-sqlite.svg)](https://pypi.org/project/google-takeout-to-sqlite/)\n[![CircleCI](https://circleci.com/gh/dogsheep/google-takeout-to-sqlite.svg?style=svg)](https://circleci.com/gh/dogsheep/google-takeout-to-sqlite)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/dogsheep/google-takeout-to-sqlite/blob/master/LICENSE)\n\nSave data from google-takeout to a SQLite database.\n\n## How to install\n\n $ pip install google-takeout-to-sqlite\n\nRequest your Google data from https://takeout.google.com/ - wait for the email and download the zip file.\n\nThis tool only supports a subset of the available options. More will be added over time.\n\n## My Activity\n\nYou can request the \"My Activity\" export and then import it with the following command:\n\n $ google-takeout-to-sqlite my-activity takeout.db ~/Downloads/takeout-20190530.zip\n\nThis will create a database file called `takeout.db` if one does not already exist.\n\n## Location History\n\nYour location history records latitude, longitude and timestame for where Google has tracked your location. You can import it using this command:\n\n $ google-takeout-to-sqlite location-history takeout.db ~/Downloads/takeout-20190530.zip\n\n## Browsing your data with Datasette\n\nOnce you have imported Google data into a SQLite database file you can browse your data using [Datasette](https://github.com/simonw/datasette). Install Datasette like so:\n\n $ pip install datasette\n\nNow browse your data by running this and then visiting `http://localhost:8001/`\n\n $ datasette takeout.db\n\nInstall the [datasette-cluster-map](https://github.com/simonw/datasette-cluster-map) plugin to see your location history on a map:\n\n $ pip install datasette-cluster-map\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/dogsheep/google-takeout-to-sqlite", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "google-takeout-to-sqlite", 22 | "package_url": "https://pypi.org/project/google-takeout-to-sqlite/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/google-takeout-to-sqlite/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/dogsheep/google-takeout-to-sqlite" 27 | }, 28 | "release_url": "https://pypi.org/project/google-takeout-to-sqlite/0.2/", 29 | "requires_dist": [ 30 | "sqlite-utils (~=1.11)", 31 | "pytest ; extra == 'test'" 32 | ], 33 | "requires_python": "", 34 | "summary": "Save data from Google Takeout to a SQLite database", 35 | "version": "0.2", 36 | "yanked": false, 37 | "yanked_reason": null 38 | }, 39 | "last_serial": 5798156, 40 | "releases": { 41 | "0.1": [ 42 | { 43 | "comment_text": "", 44 | "digests": { 45 | "blake2b_256": "e9bd44fffffa9eab07f2cf6aff0538d302165e58a87ca18c147aceeab1baae8b", 46 | "md5": "3cc7ddf6b814936cb10576b12b81707a", 47 | "sha256": "597764724e5e130b7e46d29445bfb2f64d48abe1461dd8952f35fb09f7f092e9" 48 | }, 49 | "downloads": -1, 50 | "filename": "google_takeout_to_sqlite-0.1-py3-none-any.whl", 51 | "has_sig": false, 52 | "md5_digest": "3cc7ddf6b814936cb10576b12b81707a", 53 | "packagetype": "bdist_wheel", 54 | "python_version": "py3", 55 | "requires_python": null, 56 | "size": 7330, 57 | "upload_time": "2019-09-05T20:32:26", 58 | "upload_time_iso_8601": "2019-09-05T20:32:26.298881Z", 59 | "url": "https://files.pythonhosted.org/packages/e9/bd/44fffffa9eab07f2cf6aff0538d302165e58a87ca18c147aceeab1baae8b/google_takeout_to_sqlite-0.1-py3-none-any.whl", 60 | "yanked": false, 61 | "yanked_reason": null 62 | } 63 | ], 64 | "0.2": [ 65 | { 66 | "comment_text": "", 67 | "digests": { 68 | "blake2b_256": "61bdc76a0fc13144b8ad492ffebe63f9a67226a8d54997d677b524a5165858d6", 69 | "md5": "2390b8a6342ad6d3458d54f9b23bdf15", 70 | "sha256": "a0634a68aeee33e839b4c23446ed2954d9e9795364e23c2a61c6e2aff4030f28" 71 | }, 72 | "downloads": -1, 73 | "filename": "google_takeout_to_sqlite-0.2-py3-none-any.whl", 74 | "has_sig": false, 75 | "md5_digest": "2390b8a6342ad6d3458d54f9b23bdf15", 76 | "packagetype": "bdist_wheel", 77 | "python_version": "py3", 78 | "requires_python": null, 79 | "size": 8063, 80 | "upload_time": "2019-09-08T03:14:22", 81 | "upload_time_iso_8601": "2019-09-08T03:14:22.677424Z", 82 | "url": "https://files.pythonhosted.org/packages/61/bd/c76a0fc13144b8ad492ffebe63f9a67226a8d54997d677b524a5165858d6/google_takeout_to_sqlite-0.2-py3-none-any.whl", 83 | "yanked": false, 84 | "yanked_reason": null 85 | } 86 | ] 87 | }, 88 | "urls": [ 89 | { 90 | "comment_text": "", 91 | "digests": { 92 | "blake2b_256": "61bdc76a0fc13144b8ad492ffebe63f9a67226a8d54997d677b524a5165858d6", 93 | "md5": "2390b8a6342ad6d3458d54f9b23bdf15", 94 | "sha256": "a0634a68aeee33e839b4c23446ed2954d9e9795364e23c2a61c6e2aff4030f28" 95 | }, 96 | "downloads": -1, 97 | "filename": "google_takeout_to_sqlite-0.2-py3-none-any.whl", 98 | "has_sig": false, 99 | "md5_digest": "2390b8a6342ad6d3458d54f9b23bdf15", 100 | "packagetype": "bdist_wheel", 101 | "python_version": "py3", 102 | "requires_python": null, 103 | "size": 8063, 104 | "upload_time": "2019-09-08T03:14:22", 105 | "upload_time_iso_8601": "2019-09-08T03:14:22.677424Z", 106 | "url": "https://files.pythonhosted.org/packages/61/bd/c76a0fc13144b8ad492ffebe63f9a67226a8d54997d677b524a5165858d6/google_takeout_to_sqlite-0.2-py3-none-any.whl", 107 | "yanked": false, 108 | "yanked_reason": null 109 | } 110 | ], 111 | "vulnerabilities": [] 112 | } 113 | -------------------------------------------------------------------------------- /packages/inaturalist-to-sqlite.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# inaturalist-to-sqlite\n\n[![PyPI](https://img.shields.io/pypi/v/inaturalist-to-sqlite.svg)](https://pypi.org/project/inaturalist-to-sqlite/)\n[![CircleCI](https://circleci.com/gh/dogsheep/inaturalist-to-sqlite.svg?style=svg)](https://circleci.com/gh/dogsheep/inaturalist-to-sqlite)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/dogsheep/inaturalist-to-sqlite/blob/master/LICENSE)\n\nCreate a SQLite database containing your observation history from [iNaturalist](https://www.inaturalist.org/).\n\n## How to install\n\n $ pip install inaturalist-to-sqlite\n\n## Usage\n\n $ inaturalist-to-sqlite inaturalist.db yourusername\n\n(Or try `simonw` if you don't yet have an iNaturalist account)\n\nThis will import all of your iNaturalist observations into a SQLite database called `inaturalist.db`.\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/dogsheep/inaturalist-to-sqlite", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "inaturalist-to-sqlite", 22 | "package_url": "https://pypi.org/project/inaturalist-to-sqlite/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/inaturalist-to-sqlite/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/dogsheep/inaturalist-to-sqlite" 27 | }, 28 | "release_url": "https://pypi.org/project/inaturalist-to-sqlite/0.2.1/", 29 | "requires_dist": [ 30 | "sqlite-utils (>=2.0)", 31 | "click", 32 | "requests", 33 | "pytest ; extra == 'test'" 34 | ], 35 | "requires_python": "", 36 | "summary": "Create a SQLite database containing your observation history from iNaturalist", 37 | "version": "0.2.1", 38 | "yanked": false, 39 | "yanked_reason": null 40 | }, 41 | "last_serial": 8470442, 42 | "releases": { 43 | "0.1a0": [ 44 | { 45 | "comment_text": "", 46 | "digests": { 47 | "blake2b_256": "10d2e795113f3fcfd446332771e4c0473565fb0dbd460a0be72034dfa8d56587", 48 | "md5": "aa90de61ebc9665f06eede22985f377d", 49 | "sha256": "1f39c7fd0ae2d2207b7f70880f77feaf7428e925883bd575284fddab5a5818cd" 50 | }, 51 | "downloads": -1, 52 | "filename": "inaturalist_to_sqlite-0.1a0-py3-none-any.whl", 53 | "has_sig": false, 54 | "md5_digest": "aa90de61ebc9665f06eede22985f377d", 55 | "packagetype": "bdist_wheel", 56 | "python_version": "py3", 57 | "requires_python": null, 58 | "size": 8926, 59 | "upload_time": "2019-09-04T04:06:06", 60 | "upload_time_iso_8601": "2019-09-04T04:06:06.139257Z", 61 | "url": "https://files.pythonhosted.org/packages/10/d2/e795113f3fcfd446332771e4c0473565fb0dbd460a0be72034dfa8d56587/inaturalist_to_sqlite-0.1a0-py3-none-any.whl", 62 | "yanked": false, 63 | "yanked_reason": null 64 | } 65 | ], 66 | "0.2": [ 67 | { 68 | "comment_text": "", 69 | "digests": { 70 | "blake2b_256": "e3e7e57e765aff94c1d073e743d7b7097ce21024ecc3fa769c43eb219d5d5fdc", 71 | "md5": "ee4c5ad8ddd4bbbc85d509848f65a748", 72 | "sha256": "e479ed77db4cc23723c23e2b95d4ed14c9d7e8c7598b50f2eadc6a18a514ee61" 73 | }, 74 | "downloads": -1, 75 | "filename": "inaturalist_to_sqlite-0.2-py3-none-any.whl", 76 | "has_sig": false, 77 | "md5_digest": "ee4c5ad8ddd4bbbc85d509848f65a748", 78 | "packagetype": "bdist_wheel", 79 | "python_version": "py3", 80 | "requires_python": null, 81 | "size": 8962, 82 | "upload_time": "2020-03-24T00:37:50", 83 | "upload_time_iso_8601": "2020-03-24T00:37:50.737678Z", 84 | "url": "https://files.pythonhosted.org/packages/e3/e7/e57e765aff94c1d073e743d7b7097ce21024ecc3fa769c43eb219d5d5fdc/inaturalist_to_sqlite-0.2-py3-none-any.whl", 85 | "yanked": false, 86 | "yanked_reason": null 87 | } 88 | ], 89 | "0.2.1": [ 90 | { 91 | "comment_text": "", 92 | "digests": { 93 | "blake2b_256": "6995c580fbc08a6588b09303823237a931fa74707d2468a329fdb2dd80364f6b", 94 | "md5": "d6b67cf3411e9772974b25f477d60e49", 95 | "sha256": "bede5387e731c5ef4c5a42fca598eecc142fd03f8fa13bac9337d0c6777fb3aa" 96 | }, 97 | "downloads": -1, 98 | "filename": "inaturalist_to_sqlite-0.2.1-py3-none-any.whl", 99 | "has_sig": false, 100 | "md5_digest": "d6b67cf3411e9772974b25f477d60e49", 101 | "packagetype": "bdist_wheel", 102 | "python_version": "py3", 103 | "requires_python": null, 104 | "size": 8989, 105 | "upload_time": "2020-10-22T00:09:56", 106 | "upload_time_iso_8601": "2020-10-22T00:09:56.501633Z", 107 | "url": "https://files.pythonhosted.org/packages/69/95/c580fbc08a6588b09303823237a931fa74707d2468a329fdb2dd80364f6b/inaturalist_to_sqlite-0.2.1-py3-none-any.whl", 108 | "yanked": false, 109 | "yanked_reason": null 110 | } 111 | ] 112 | }, 113 | "urls": [ 114 | { 115 | "comment_text": "", 116 | "digests": { 117 | "blake2b_256": "6995c580fbc08a6588b09303823237a931fa74707d2468a329fdb2dd80364f6b", 118 | "md5": "d6b67cf3411e9772974b25f477d60e49", 119 | "sha256": "bede5387e731c5ef4c5a42fca598eecc142fd03f8fa13bac9337d0c6777fb3aa" 120 | }, 121 | "downloads": -1, 122 | "filename": "inaturalist_to_sqlite-0.2.1-py3-none-any.whl", 123 | "has_sig": false, 124 | "md5_digest": "d6b67cf3411e9772974b25f477d60e49", 125 | "packagetype": "bdist_wheel", 126 | "python_version": "py3", 127 | "requires_python": null, 128 | "size": 8989, 129 | "upload_time": "2020-10-22T00:09:56", 130 | "upload_time_iso_8601": "2020-10-22T00:09:56.501633Z", 131 | "url": "https://files.pythonhosted.org/packages/69/95/c580fbc08a6588b09303823237a931fa74707d2468a329fdb2dd80364f6b/inaturalist_to_sqlite-0.2.1-py3-none-any.whl", 132 | "yanked": false, 133 | "yanked_reason": null 134 | } 135 | ], 136 | "vulnerabilities": [] 137 | } 138 | -------------------------------------------------------------------------------- /packages/datasette-jq.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-jq\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-jq.svg)](https://pypi.org/project/datasette-jq/)\n[![CircleCI](https://circleci.com/gh/simonw/datasette-jq.svg?style=svg)](https://circleci.com/gh/simonw/datasette-jq)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-jq/blob/master/LICENSE)\n\nDatasette plugin that adds custom SQL functions for executing [jq](https://stedolan.github.io/jq/) expressions against JSON values.\n\nInstall this plugin in the same environment as Datasette to enable the `jq()` SQL function.\n\nUsage:\n\n select jq(\n column_with_json,\n \"{top_3: .classifiers[:3], v: .version}\"\n )\n\nSee [the jq manual](https://stedolan.github.io/jq/manual/#Basicfilters) for full details of supported expression syntax.\n\n## Interactive demo\n\nYou can try this plugin out at [datasette-jq-demo.datasette.io](https://datasette-jq-demo.datasette.io/)\n\nSample query:\n\n select package, \"https://pypi.org/project/\" || package || \"/\" as url,\n jq(info, \"{summary: .info.summary, author: .info.author, versions: .releases|keys|reverse}\")\n from packages\n\n[Try this query out](https://datasette-jq-demo.datasette.io/demo?sql=select+package%2C+%22https%3A%2F%2Fpypi.org%2Fproject%2F%22+%7C%7C+package+%7C%7C+%22%2F%22+as+url%2C%0D%0Ajq%28info%2C+%22%7Bsummary%3A+.info.summary%2C+author%3A+.info.author%2C+versions%3A+.releases%7Ckeys%7Creverse%7D%22%29%0D%0Afrom+packages) in the interactive demo.\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-jq", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-jq", 22 | "package_url": "https://pypi.org/project/datasette-jq/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-jq/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/simonw/datasette-jq" 27 | }, 28 | "release_url": "https://pypi.org/project/datasette-jq/0.2.1/", 29 | "requires_dist": [ 30 | "datasette", 31 | "pyjq", 32 | "six", 33 | "pytest ; extra == 'test'" 34 | ], 35 | "requires_python": "", 36 | "summary": "Datasette plugin that adds custom SQL functions for executing jq expressions against JSON values", 37 | "version": "0.2.1", 38 | "yanked": false, 39 | "yanked_reason": null 40 | }, 41 | "last_serial": 6983472, 42 | "releases": { 43 | "0.1": [ 44 | { 45 | "comment_text": "", 46 | "digests": { 47 | "blake2b_256": "e9f91efab87fac26fe42a9af487b51db7ffc1d4079dbab1a7b6434e1c8a7e114", 48 | "md5": "4edb289bb6e3e4175893b34a4bbada86", 49 | "sha256": "cecdcde376e7679f96506de7f9f8d0f301bff7fab76982be348e7b27e772c8e8" 50 | }, 51 | "downloads": -1, 52 | "filename": "datasette_jq-0.1-py3-none-any.whl", 53 | "has_sig": false, 54 | "md5_digest": "4edb289bb6e3e4175893b34a4bbada86", 55 | "packagetype": "bdist_wheel", 56 | "python_version": "py3", 57 | "requires_python": null, 58 | "size": 6271, 59 | "upload_time": "2019-05-30T01:16:17", 60 | "upload_time_iso_8601": "2019-05-30T01:16:17.124145Z", 61 | "url": "https://files.pythonhosted.org/packages/e9/f9/1efab87fac26fe42a9af487b51db7ffc1d4079dbab1a7b6434e1c8a7e114/datasette_jq-0.1-py3-none-any.whl", 62 | "yanked": false, 63 | "yanked_reason": null 64 | } 65 | ], 66 | "0.2": [ 67 | { 68 | "comment_text": "", 69 | "digests": { 70 | "blake2b_256": "bc9db594bb5f83a1be0a0c72930066570f70366bbfb80a5420b741c76fe3e199", 71 | "md5": "d9f16729bb56de7e9666cc9720a4d520", 72 | "sha256": "500e1831da4ef2a6113b025b5cb489c6871ce9897fecde3cdd2b2fdc04fe4ffe" 73 | }, 74 | "downloads": -1, 75 | "filename": "datasette_jq-0.2-py3-none-any.whl", 76 | "has_sig": false, 77 | "md5_digest": "d9f16729bb56de7e9666cc9720a4d520", 78 | "packagetype": "bdist_wheel", 79 | "python_version": "py3", 80 | "requires_python": null, 81 | "size": 6544, 82 | "upload_time": "2019-05-30T01:44:21", 83 | "upload_time_iso_8601": "2019-05-30T01:44:21.486347Z", 84 | "url": "https://files.pythonhosted.org/packages/bc/9d/b594bb5f83a1be0a0c72930066570f70366bbfb80a5420b741c76fe3e199/datasette_jq-0.2-py3-none-any.whl", 85 | "yanked": false, 86 | "yanked_reason": null 87 | } 88 | ], 89 | "0.2.1": [ 90 | { 91 | "comment_text": "", 92 | "digests": { 93 | "blake2b_256": "6e4ffac9eb900ac6b33d24eebf9929c1fe212b27e245cb49b15a48c7e643110c", 94 | "md5": "2cece2547eb93419ee361b84211c6c19", 95 | "sha256": "d67c45bfa912ae030aaeb331e48b7254756c00f6058fb403ce93860e8d2a11bb" 96 | }, 97 | "downloads": -1, 98 | "filename": "datasette_jq-0.2.1-py3-none-any.whl", 99 | "has_sig": false, 100 | "md5_digest": "2cece2547eb93419ee361b84211c6c19", 101 | "packagetype": "bdist_wheel", 102 | "python_version": "py3", 103 | "requires_python": null, 104 | "size": 6573, 105 | "upload_time": "2020-04-09T05:46:02", 106 | "upload_time_iso_8601": "2020-04-09T05:46:02.275533Z", 107 | "url": "https://files.pythonhosted.org/packages/6e/4f/fac9eb900ac6b33d24eebf9929c1fe212b27e245cb49b15a48c7e643110c/datasette_jq-0.2.1-py3-none-any.whl", 108 | "yanked": false, 109 | "yanked_reason": null 110 | } 111 | ] 112 | }, 113 | "urls": [ 114 | { 115 | "comment_text": "", 116 | "digests": { 117 | "blake2b_256": "6e4ffac9eb900ac6b33d24eebf9929c1fe212b27e245cb49b15a48c7e643110c", 118 | "md5": "2cece2547eb93419ee361b84211c6c19", 119 | "sha256": "d67c45bfa912ae030aaeb331e48b7254756c00f6058fb403ce93860e8d2a11bb" 120 | }, 121 | "downloads": -1, 122 | "filename": "datasette_jq-0.2.1-py3-none-any.whl", 123 | "has_sig": false, 124 | "md5_digest": "2cece2547eb93419ee361b84211c6c19", 125 | "packagetype": "bdist_wheel", 126 | "python_version": "py3", 127 | "requires_python": null, 128 | "size": 6573, 129 | "upload_time": "2020-04-09T05:46:02", 130 | "upload_time_iso_8601": "2020-04-09T05:46:02.275533Z", 131 | "url": "https://files.pythonhosted.org/packages/6e/4f/fac9eb900ac6b33d24eebf9929c1fe212b27e245cb49b15a48c7e643110c/datasette_jq-0.2.1-py3-none-any.whl", 132 | "yanked": false, 133 | "yanked_reason": null 134 | } 135 | ], 136 | "vulnerabilities": [] 137 | } 138 | -------------------------------------------------------------------------------- /packages/datasette-pyinstrument.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-pyinstrument\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-pyinstrument.svg)](https://pypi.org/project/datasette-pyinstrument/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-pyinstrument?include_prereleases&label=changelog)](https://github.com/simonw/datasette-pyinstrument/releases)\n[![Tests](https://github.com/simonw/datasette-pyinstrument/workflows/Test/badge.svg)](https://github.com/simonw/datasette-pyinstrument/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-pyinstrument/blob/main/LICENSE)\n\nUse pyinstrument to analyze Datasette page performance\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n $ datasette install datasette-pyinstrument\n\n## Usage\n\nOnce installed, adding `?_pyinstrument=1` to any URL within Datasette will replace the output of that page with the pyinstrument profiler results for it.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-pyinstrument\n python3 -mvenv venv\n source venv/bin/activate\n\nOr if you are using `pipenv`:\n\n pipenv shell\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-pyinstrument", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-pyinstrument", 22 | "package_url": "https://pypi.org/project/datasette-pyinstrument/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-pyinstrument/", 25 | "project_urls": { 26 | "CI": "https://github.com/simonw/datasette-pyinstrument/actions", 27 | "Changelog": "https://github.com/simonw/datasette-pyinstrument/releases", 28 | "Homepage": "https://github.com/simonw/datasette-pyinstrument", 29 | "Issues": "https://github.com/simonw/datasette-pyinstrument/issues" 30 | }, 31 | "release_url": "https://pypi.org/project/datasette-pyinstrument/0.1/", 32 | "requires_dist": [ 33 | "datasette", 34 | "pyinstrument", 35 | "pytest ; extra == 'test'", 36 | "pytest-asyncio ; extra == 'test'" 37 | ], 38 | "requires_python": ">=3.7", 39 | "summary": "Use pyinstrument to analyze Datasette page performance", 40 | "version": "0.1", 41 | "yanked": false, 42 | "yanked_reason": null 43 | }, 44 | "last_serial": 11123227, 45 | "releases": { 46 | "0.1": [ 47 | { 48 | "comment_text": "", 49 | "digests": { 50 | "blake2b_256": "f94bfa2f99ecc523433230633affa15223ad3d87686cc752232b44edf4117d9b", 51 | "md5": "7bd257e5a8e64b7ee5c2d7cda00095da", 52 | "sha256": "59830489617ed5ae2b89f343a8ddf2fe4f66123f6044d383af666e7b3589c967" 53 | }, 54 | "downloads": -1, 55 | "filename": "datasette_pyinstrument-0.1-py3-none-any.whl", 56 | "has_sig": false, 57 | "md5_digest": "7bd257e5a8e64b7ee5c2d7cda00095da", 58 | "packagetype": "bdist_wheel", 59 | "python_version": "py3", 60 | "requires_python": ">=3.7", 61 | "size": 2746, 62 | "upload_time": "2021-08-08T15:44:36", 63 | "upload_time_iso_8601": "2021-08-08T15:44:36.925293Z", 64 | "url": "https://files.pythonhosted.org/packages/f9/4b/fa2f99ecc523433230633affa15223ad3d87686cc752232b44edf4117d9b/datasette_pyinstrument-0.1-py3-none-any.whl", 65 | "yanked": false, 66 | "yanked_reason": null 67 | }, 68 | { 69 | "comment_text": "", 70 | "digests": { 71 | "blake2b_256": "70528e68e873803bdd89527d9eecc3ed5289129f66e89b6c635da2fcda7b254e", 72 | "md5": "9ea73ab1d5315a7f181e31a24d57630f", 73 | "sha256": "d3068afc5888529d0d8fcb952adacd28a9defc782b076f07e8d411ca6c2cf148" 74 | }, 75 | "downloads": -1, 76 | "filename": "datasette-pyinstrument-0.1.tar.gz", 77 | "has_sig": false, 78 | "md5_digest": "9ea73ab1d5315a7f181e31a24d57630f", 79 | "packagetype": "sdist", 80 | "python_version": "source", 81 | "requires_python": ">=3.7", 82 | "size": 2511, 83 | "upload_time": "2021-08-08T15:44:38", 84 | "upload_time_iso_8601": "2021-08-08T15:44:38.345519Z", 85 | "url": "https://files.pythonhosted.org/packages/70/52/8e68e873803bdd89527d9eecc3ed5289129f66e89b6c635da2fcda7b254e/datasette-pyinstrument-0.1.tar.gz", 86 | "yanked": false, 87 | "yanked_reason": null 88 | } 89 | ] 90 | }, 91 | "urls": [ 92 | { 93 | "comment_text": "", 94 | "digests": { 95 | "blake2b_256": "f94bfa2f99ecc523433230633affa15223ad3d87686cc752232b44edf4117d9b", 96 | "md5": "7bd257e5a8e64b7ee5c2d7cda00095da", 97 | "sha256": "59830489617ed5ae2b89f343a8ddf2fe4f66123f6044d383af666e7b3589c967" 98 | }, 99 | "downloads": -1, 100 | "filename": "datasette_pyinstrument-0.1-py3-none-any.whl", 101 | "has_sig": false, 102 | "md5_digest": "7bd257e5a8e64b7ee5c2d7cda00095da", 103 | "packagetype": "bdist_wheel", 104 | "python_version": "py3", 105 | "requires_python": ">=3.7", 106 | "size": 2746, 107 | "upload_time": "2021-08-08T15:44:36", 108 | "upload_time_iso_8601": "2021-08-08T15:44:36.925293Z", 109 | "url": "https://files.pythonhosted.org/packages/f9/4b/fa2f99ecc523433230633affa15223ad3d87686cc752232b44edf4117d9b/datasette_pyinstrument-0.1-py3-none-any.whl", 110 | "yanked": false, 111 | "yanked_reason": null 112 | }, 113 | { 114 | "comment_text": "", 115 | "digests": { 116 | "blake2b_256": "70528e68e873803bdd89527d9eecc3ed5289129f66e89b6c635da2fcda7b254e", 117 | "md5": "9ea73ab1d5315a7f181e31a24d57630f", 118 | "sha256": "d3068afc5888529d0d8fcb952adacd28a9defc782b076f07e8d411ca6c2cf148" 119 | }, 120 | "downloads": -1, 121 | "filename": "datasette-pyinstrument-0.1.tar.gz", 122 | "has_sig": false, 123 | "md5_digest": "9ea73ab1d5315a7f181e31a24d57630f", 124 | "packagetype": "sdist", 125 | "python_version": "source", 126 | "requires_python": ">=3.7", 127 | "size": 2511, 128 | "upload_time": "2021-08-08T15:44:38", 129 | "upload_time_iso_8601": "2021-08-08T15:44:38.345519Z", 130 | "url": "https://files.pythonhosted.org/packages/70/52/8e68e873803bdd89527d9eecc3ed5289129f66e89b6c635da2fcda7b254e/datasette-pyinstrument-0.1.tar.gz", 131 | "yanked": false, 132 | "yanked_reason": null 133 | } 134 | ], 135 | "vulnerabilities": [] 136 | } 137 | -------------------------------------------------------------------------------- /packages/datasette-explain.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-explain\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-explain.svg)](https://pypi.org/project/datasette-explain/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-explain?include_prereleases&label=changelog)](https://github.com/simonw/datasette-explain/releases)\n[![Tests](https://github.com/simonw/datasette-explain/workflows/Test/badge.svg)](https://github.com/simonw/datasette-explain/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-explain/blob/main/LICENSE)\n\nExplain SQL queries executed using Datasette\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-explain\n\n## Usage\n\nThe plugin adds JavaScript to the query editor page which will constantly update the page with information gained from running EXPLAIN QUERY PLAN queries against the entered SQL.\n\nThis may result in an error message, or it may show the query plan along with any tables used by the query.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-explain\n python3 -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/simonw/datasette-explain", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-explain", 25 | "package_url": "https://pypi.org/project/datasette-explain/", 26 | "platform": null, 27 | "project_url": "https://pypi.org/project/datasette-explain/", 28 | "project_urls": { 29 | "CI": "https://github.com/simonw/datasette-explain/actions", 30 | "Changelog": "https://github.com/simonw/datasette-explain/releases", 31 | "Homepage": "https://github.com/simonw/datasette-explain", 32 | "Issues": "https://github.com/simonw/datasette-explain/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-explain/0.1a0/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.7", 41 | "summary": "Explain SQL queries executed using Datasette", 42 | "version": "0.1a0", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 16761634, 47 | "releases": { 48 | "0.1a0": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "05ae1e7965e2f459fe322702022f9da559e99968b66937a3c1ec44cf34762ed8", 53 | "md5": "08ef78ae8801d7d8ff8d8394e6296622", 54 | "sha256": "8ad3df6c12f9811ad517090b082bd4ed6bc38f1e145a4012f8f3cd6b4170f3f3" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_explain-0.1a0-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "08ef78ae8801d7d8ff8d8394e6296622", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.7", 63 | "size": 8156, 64 | "upload_time": "2023-02-09T02:07:26", 65 | "upload_time_iso_8601": "2023-02-09T02:07:26.405720Z", 66 | "url": "https://files.pythonhosted.org/packages/05/ae/1e7965e2f459fe322702022f9da559e99968b66937a3c1ec44cf34762ed8/datasette_explain-0.1a0-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "94bd3443a670f34315251b871fc0d72ff97c88e87be3d22821af0b20f59628b6", 74 | "md5": "02d06d5ecb680e54cbc5d6efa7b0844b", 75 | "sha256": "fe374a9aa73df1b07e544c3137e9e3a7a4f925739ac6bda165a1ba2ee291f520" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-explain-0.1a0.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "02d06d5ecb680e54cbc5d6efa7b0844b", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.7", 84 | "size": 8231, 85 | "upload_time": "2023-02-09T02:07:27", 86 | "upload_time_iso_8601": "2023-02-09T02:07:27.847728Z", 87 | "url": "https://files.pythonhosted.org/packages/94/bd/3443a670f34315251b871fc0d72ff97c88e87be3d22821af0b20f59628b6/datasette-explain-0.1a0.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "05ae1e7965e2f459fe322702022f9da559e99968b66937a3c1ec44cf34762ed8", 98 | "md5": "08ef78ae8801d7d8ff8d8394e6296622", 99 | "sha256": "8ad3df6c12f9811ad517090b082bd4ed6bc38f1e145a4012f8f3cd6b4170f3f3" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_explain-0.1a0-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "08ef78ae8801d7d8ff8d8394e6296622", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.7", 108 | "size": 8156, 109 | "upload_time": "2023-02-09T02:07:26", 110 | "upload_time_iso_8601": "2023-02-09T02:07:26.405720Z", 111 | "url": "https://files.pythonhosted.org/packages/05/ae/1e7965e2f459fe322702022f9da559e99968b66937a3c1ec44cf34762ed8/datasette_explain-0.1a0-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "94bd3443a670f34315251b871fc0d72ff97c88e87be3d22821af0b20f59628b6", 119 | "md5": "02d06d5ecb680e54cbc5d6efa7b0844b", 120 | "sha256": "fe374a9aa73df1b07e544c3137e9e3a7a4f925739ac6bda165a1ba2ee291f520" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-explain-0.1a0.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "02d06d5ecb680e54cbc5d6efa7b0844b", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.7", 129 | "size": 8231, 130 | "upload_time": "2023-02-09T02:07:27", 131 | "upload_time_iso_8601": "2023-02-09T02:07:27.847728Z", 132 | "url": "https://files.pythonhosted.org/packages/94/bd/3443a670f34315251b871fc0d72ff97c88e87be3d22821af0b20f59628b6/datasette-explain-0.1a0.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-psutil.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-psutil\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-psutil.svg)](https://pypi.org/project/datasette-psutil/)\n[![CircleCI](https://circleci.com/gh/simonw/datasette-psutil.svg?style=svg)](https://circleci.com/gh/simonw/datasette-psutil)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-psutil/blob/master/LICENSE)\n\nDatasette plugin adding a `/-/psutil` debugging endpoint\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n $ pip install datasette-psutil\n\n## Usage\n\nVisit `/-/psutil` on your Datasette instance to see various information provided by [psutil](https://psutil.readthedocs.io/).\n\n## Example\n\nYou can visit a live demo here: https://datasette-psutil-demo-j7hipcg4aq-uw.a.run.app/-/psutil\n\nSample output:\n```\nprocess.open_files()\n popenfile(path='/tmp/fixtures.db', fd=6)\n\nprocess.connections()\n pconn(fd=5, family=, type=, laddr=addr(ip='169.254.8.130', port=8080), raddr=addr(ip='169.254.8.129', port=52621), status='ESTABLISHED')\n pconn(fd=3, family=, type=, laddr=addr(ip='0.0.0.0', port=8080), raddr=(), status='LISTEN')\n\nprocess.memory_info()\n pmem(rss=56827904, vms=242540544, shared=0, text=0, lib=0, data=0, dirty=0)\n\nprocess.cmdline()\n '/usr/local/bin/python'\n '/usr/local/bin/datasette'\n 'serve'\n '--host'\n '0.0.0.0'\n '-i'\n 'fixtures.db'\n '--cors'\n '--inspect-file'\n 'inspect-data.json'\n '--port'\n '8080'\n\nprocess.parents()\n psutil.Process(pid=1, name='sh', started='23:19:29')\n\nprocess.threads()\n pthread(id=2, user_time=7.27, system_time=3.99)\n pthread(id=4, user_time=0.01, system_time=0.0)\n pthread(id=5, user_time=0.0, system_time=0.0)\n pthread(id=6, user_time=0.0, system_time=0.0)\n pthread(id=7, user_time=0.0, system_time=0.0)\n pthread(id=8, user_time=0.0, system_time=0.0)\n\npsutil.getloadavg()\n (0.0, 0.0, 0.0)\n\npsutil.cpu_times(True)\n scputimes(user=0.0, nice=0.0, system=0.0, idle=0.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)\n scputimes(user=0.0, nice=0.0, system=0.0, idle=0.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)\n\npsutil.virtual_memory()\n svmem(total=2147483648, available=2093080576, percent=2.5, used=31113216, free=2093080576, active=42860544, inactive=11513856, buffers=0, cached=23289856, shared=262144, slab=0)\n\nlist(psutil.process_iter())\n psutil.Process(pid=1, name='sh', started='23:19:29')\n psutil.Process(pid=2, name='datasette', started='23:19:29')\n```\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-psutil", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-psutil", 22 | "package_url": "https://pypi.org/project/datasette-psutil/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-psutil/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/simonw/datasette-psutil" 27 | }, 28 | "release_url": "https://pypi.org/project/datasette-psutil/0.2/", 29 | "requires_dist": [ 30 | "datasette (>=0.44)", 31 | "psutil", 32 | "pytest ; extra == 'test'", 33 | "pytest-asyncio ; extra == 'test'", 34 | "httpx ; extra == 'test'" 35 | ], 36 | "requires_python": "", 37 | "summary": "Datasette plugin adding a /-/psutil debugging endpoint", 38 | "version": "0.2", 39 | "yanked": false, 40 | "yanked_reason": null 41 | }, 42 | "last_serial": 7470444, 43 | "releases": { 44 | "0.1": [ 45 | { 46 | "comment_text": "", 47 | "digests": { 48 | "blake2b_256": "7c431b106e8bb6df7f44c76e406e2f83557d6c0c82630c10a8ea5b873aa296a9", 49 | "md5": "225d1be559600b19e2fcc8890ba818e2", 50 | "sha256": "43f39e159066a0fa7d6c018dcbcaaacc4bd10b0c4b44e00efe45c1b675ba910d" 51 | }, 52 | "downloads": -1, 53 | "filename": "datasette_psutil-0.1-py3-none-any.whl", 54 | "has_sig": false, 55 | "md5_digest": "225d1be559600b19e2fcc8890ba818e2", 56 | "packagetype": "bdist_wheel", 57 | "python_version": "py3", 58 | "requires_python": null, 59 | "size": 6458, 60 | "upload_time": "2020-06-13T23:02:55", 61 | "upload_time_iso_8601": "2020-06-13T23:02:55.618667Z", 62 | "url": "https://files.pythonhosted.org/packages/7c/43/1b106e8bb6df7f44c76e406e2f83557d6c0c82630c10a8ea5b873aa296a9/datasette_psutil-0.1-py3-none-any.whl", 63 | "yanked": false, 64 | "yanked_reason": null 65 | } 66 | ], 67 | "0.2": [ 68 | { 69 | "comment_text": "", 70 | "digests": { 71 | "blake2b_256": "a85013638bed9fef1be07a18b736ecd24e528f2af7cbc85e4e88bc9f94d033eb", 72 | "md5": "88f729f8d8c655ef642f9fa780432068", 73 | "sha256": "d3e1cdee93bb5efda5f946ed945f965fb806a635e7a2eec76508775653cfe222" 74 | }, 75 | "downloads": -1, 76 | "filename": "datasette_psutil-0.2-py3-none-any.whl", 77 | "has_sig": false, 78 | "md5_digest": "88f729f8d8c655ef642f9fa780432068", 79 | "packagetype": "bdist_wheel", 80 | "python_version": "py3", 81 | "requires_python": null, 82 | "size": 7224, 83 | "upload_time": "2020-06-13T23:31:35", 84 | "upload_time_iso_8601": "2020-06-13T23:31:35.716683Z", 85 | "url": "https://files.pythonhosted.org/packages/a8/50/13638bed9fef1be07a18b736ecd24e528f2af7cbc85e4e88bc9f94d033eb/datasette_psutil-0.2-py3-none-any.whl", 86 | "yanked": false, 87 | "yanked_reason": null 88 | } 89 | ] 90 | }, 91 | "urls": [ 92 | { 93 | "comment_text": "", 94 | "digests": { 95 | "blake2b_256": "a85013638bed9fef1be07a18b736ecd24e528f2af7cbc85e4e88bc9f94d033eb", 96 | "md5": "88f729f8d8c655ef642f9fa780432068", 97 | "sha256": "d3e1cdee93bb5efda5f946ed945f965fb806a635e7a2eec76508775653cfe222" 98 | }, 99 | "downloads": -1, 100 | "filename": "datasette_psutil-0.2-py3-none-any.whl", 101 | "has_sig": false, 102 | "md5_digest": "88f729f8d8c655ef642f9fa780432068", 103 | "packagetype": "bdist_wheel", 104 | "python_version": "py3", 105 | "requires_python": null, 106 | "size": 7224, 107 | "upload_time": "2020-06-13T23:31:35", 108 | "upload_time_iso_8601": "2020-06-13T23:31:35.716683Z", 109 | "url": "https://files.pythonhosted.org/packages/a8/50/13638bed9fef1be07a18b736ecd24e528f2af7cbc85e4e88bc9f94d033eb/datasette_psutil-0.2-py3-none-any.whl", 110 | "yanked": false, 111 | "yanked_reason": null 112 | } 113 | ], 114 | "vulnerabilities": [] 115 | } 116 | -------------------------------------------------------------------------------- /packages/mbox-to-sqlite.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# mbox-to-sqlite\n\n[![PyPI](https://img.shields.io/pypi/v/mbox-to-sqlite.svg)](https://pypi.org/project/mbox-to-sqlite/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/mbox-to-sqlite?include_prereleases&label=changelog)](https://github.com/simonw/mbox-to-sqlite/releases)\n[![Tests](https://github.com/simonw/mbox-to-sqlite/workflows/Test/badge.svg)](https://github.com/simonw/mbox-to-sqlite/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/mbox-to-sqlite/blob/master/LICENSE)\n\nLoad email from .mbox files into SQLite\n\n## Installation\n\nInstall this tool using `pip`:\n\n pip install mbox-to-sqlite\n\n## Usage\n\nUse the `mbox` command to import a `.mbox` file into a SQLite database:\n\n mbox-to-sqlite mbox emails.db path/to/messages.mbox\n\nYou can try this out against an example containing a sample of 3,266 emails from the [Enron corpus](https://en.wikipedia.org/wiki/Enron_Corpus) like this:\n\n curl -O https://raw.githubusercontent.com/ivanhb/EMA/master/server/data/mbox/enron/mbox-enron-white-s-all.mbox\n mbox-to-sqlite mbox enron.db mbox-enron-white-s-all.mbox\n\nYou can then explore the resulting database using [Datasette](https://datasette.io/):\n\n datasette enron.db\n\n## Development\n\nTo contribute to this tool, first checkout the code. Then create a new virtual environment:\n\n cd mbox-to-sqlite\n python -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/mbox-to-sqlite", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "mbox-to-sqlite", 22 | "package_url": "https://pypi.org/project/mbox-to-sqlite/", 23 | "platform": null, 24 | "project_url": "https://pypi.org/project/mbox-to-sqlite/", 25 | "project_urls": { 26 | "CI": "https://github.com/simonw/mbox-to-sqlite/actions", 27 | "Changelog": "https://github.com/simonw/mbox-to-sqlite/releases", 28 | "Homepage": "https://github.com/simonw/mbox-to-sqlite", 29 | "Issues": "https://github.com/simonw/mbox-to-sqlite/issues" 30 | }, 31 | "release_url": "https://pypi.org/project/mbox-to-sqlite/0.1a0/", 32 | "requires_dist": [ 33 | "click", 34 | "sqlite-utils", 35 | "pytest ; extra == 'test'" 36 | ], 37 | "requires_python": ">=3.7", 38 | "summary": "Load email from .mbox files into SQLite", 39 | "version": "0.1a0", 40 | "yanked": false, 41 | "yanked_reason": null 42 | }, 43 | "last_serial": 13991617, 44 | "releases": { 45 | "0.1a0": [ 46 | { 47 | "comment_text": "", 48 | "digests": { 49 | "blake2b_256": "40c170f5152f4f4051d5b1c7582766df700bcf0a7e51a39549805135916be502", 50 | "md5": "a88c4039e6bd8e0427a51eeb2bca0ca2", 51 | "sha256": "25b8dc743c4084f2f34147cfbb70e43bb76b064a54385d90deeccaaf0ae02688" 52 | }, 53 | "downloads": -1, 54 | "filename": "mbox_to_sqlite-0.1a0-py3-none-any.whl", 55 | "has_sig": false, 56 | "md5_digest": "a88c4039e6bd8e0427a51eeb2bca0ca2", 57 | "packagetype": "bdist_wheel", 58 | "python_version": "py3", 59 | "requires_python": ">=3.7", 60 | "size": 7307, 61 | "upload_time": "2022-05-31T18:47:49", 62 | "upload_time_iso_8601": "2022-05-31T18:47:49.896892Z", 63 | "url": "https://files.pythonhosted.org/packages/40/c1/70f5152f4f4051d5b1c7582766df700bcf0a7e51a39549805135916be502/mbox_to_sqlite-0.1a0-py3-none-any.whl", 64 | "yanked": false, 65 | "yanked_reason": null 66 | }, 67 | { 68 | "comment_text": "", 69 | "digests": { 70 | "blake2b_256": "a6ddef379da65bfd526922c52eeceaeb8538d179e005f015d5542e4af1912101", 71 | "md5": "be2e36ade882d4aeda85bc47df15fc00", 72 | "sha256": "5fa572fbab78aff500d53c4be189035aa453768351f73f3ea9b9699dfe968d63" 73 | }, 74 | "downloads": -1, 75 | "filename": "mbox-to-sqlite-0.1a0.tar.gz", 76 | "has_sig": false, 77 | "md5_digest": "be2e36ade882d4aeda85bc47df15fc00", 78 | "packagetype": "sdist", 79 | "python_version": "source", 80 | "requires_python": ">=3.7", 81 | "size": 6627, 82 | "upload_time": "2022-05-31T18:47:51", 83 | "upload_time_iso_8601": "2022-05-31T18:47:51.373343Z", 84 | "url": "https://files.pythonhosted.org/packages/a6/dd/ef379da65bfd526922c52eeceaeb8538d179e005f015d5542e4af1912101/mbox-to-sqlite-0.1a0.tar.gz", 85 | "yanked": false, 86 | "yanked_reason": null 87 | } 88 | ] 89 | }, 90 | "urls": [ 91 | { 92 | "comment_text": "", 93 | "digests": { 94 | "blake2b_256": "40c170f5152f4f4051d5b1c7582766df700bcf0a7e51a39549805135916be502", 95 | "md5": "a88c4039e6bd8e0427a51eeb2bca0ca2", 96 | "sha256": "25b8dc743c4084f2f34147cfbb70e43bb76b064a54385d90deeccaaf0ae02688" 97 | }, 98 | "downloads": -1, 99 | "filename": "mbox_to_sqlite-0.1a0-py3-none-any.whl", 100 | "has_sig": false, 101 | "md5_digest": "a88c4039e6bd8e0427a51eeb2bca0ca2", 102 | "packagetype": "bdist_wheel", 103 | "python_version": "py3", 104 | "requires_python": ">=3.7", 105 | "size": 7307, 106 | "upload_time": "2022-05-31T18:47:49", 107 | "upload_time_iso_8601": "2022-05-31T18:47:49.896892Z", 108 | "url": "https://files.pythonhosted.org/packages/40/c1/70f5152f4f4051d5b1c7582766df700bcf0a7e51a39549805135916be502/mbox_to_sqlite-0.1a0-py3-none-any.whl", 109 | "yanked": false, 110 | "yanked_reason": null 111 | }, 112 | { 113 | "comment_text": "", 114 | "digests": { 115 | "blake2b_256": "a6ddef379da65bfd526922c52eeceaeb8538d179e005f015d5542e4af1912101", 116 | "md5": "be2e36ade882d4aeda85bc47df15fc00", 117 | "sha256": "5fa572fbab78aff500d53c4be189035aa453768351f73f3ea9b9699dfe968d63" 118 | }, 119 | "downloads": -1, 120 | "filename": "mbox-to-sqlite-0.1a0.tar.gz", 121 | "has_sig": false, 122 | "md5_digest": "be2e36ade882d4aeda85bc47df15fc00", 123 | "packagetype": "sdist", 124 | "python_version": "source", 125 | "requires_python": ">=3.7", 126 | "size": 6627, 127 | "upload_time": "2022-05-31T18:47:51", 128 | "upload_time_iso_8601": "2022-05-31T18:47:51.373343Z", 129 | "url": "https://files.pythonhosted.org/packages/a6/dd/ef379da65bfd526922c52eeceaeb8538d179e005f015d5542e4af1912101/mbox-to-sqlite-0.1a0.tar.gz", 130 | "yanked": false, 131 | "yanked_reason": null 132 | } 133 | ], 134 | "vulnerabilities": [] 135 | } 136 | -------------------------------------------------------------------------------- /packages/datasette-hovercards.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-hovercards\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-hovercards.svg)](https://pypi.org/project/datasette-hovercards/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-hovercards?include_prereleases&label=changelog)](https://github.com/simonw/datasette-hovercards/releases)\n[![Tests](https://github.com/simonw/datasette-hovercards/workflows/Test/badge.svg)](https://github.com/simonw/datasette-hovercards/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-hovercards/blob/main/LICENSE)\n\nAdd preview hovercards to links in Datasette\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n $ datasette install datasette-hovercards\n\n## Usage\n\nOnce installed, hovering over a link to a row within the Datasette interface - for example a foreign key reference on the table page - should show a hovercard with a preview of that row.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-hovercards\n python3 -mvenv venv\n source venv/bin/activate\n\nOr if you are using `pipenv`:\n\n pipenv shell\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n\n\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/simonw/datasette-hovercards", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-hovercards", 25 | "package_url": "https://pypi.org/project/datasette-hovercards/", 26 | "platform": "", 27 | "project_url": "https://pypi.org/project/datasette-hovercards/", 28 | "project_urls": { 29 | "CI": "https://github.com/simonw/datasette-hovercards/actions", 30 | "Changelog": "https://github.com/simonw/datasette-hovercards/releases", 31 | "Homepage": "https://github.com/simonw/datasette-hovercards", 32 | "Issues": "https://github.com/simonw/datasette-hovercards/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-hovercards/0.1a0/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.6", 41 | "summary": "Add preview hovercards to links in Datasette", 42 | "version": "0.1a0", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 12192327, 47 | "releases": { 48 | "0.1a0": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "049236ab94292675cf71b9870d5c136fe43dfe2f28c6595e15ddd8568130097c", 53 | "md5": "442ffc0bc4c9101318e98eb36316d39c", 54 | "sha256": "9c9c1ddf46b7e9b17082272092483218978808f8bae7365927d305cc377da811" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_hovercards-0.1a0-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "442ffc0bc4c9101318e98eb36316d39c", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.6", 63 | "size": 3760, 64 | "upload_time": "2021-12-02T17:15:19", 65 | "upload_time_iso_8601": "2021-12-02T17:15:19.477496Z", 66 | "url": "https://files.pythonhosted.org/packages/04/92/36ab94292675cf71b9870d5c136fe43dfe2f28c6595e15ddd8568130097c/datasette_hovercards-0.1a0-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "aa6c2d86245be9080e699281896d9a9e12f9876b0a9f939af26d7b7911cbfbde", 74 | "md5": "32dea6f08e35b06d743b6cd8f405c9d0", 75 | "sha256": "0b2222f1d69317e93949bfa2096181b2679df619208a5e1113b31146466d27d6" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-hovercards-0.1a0.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "32dea6f08e35b06d743b6cd8f405c9d0", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.6", 84 | "size": 3261, 85 | "upload_time": "2021-12-02T17:15:20", 86 | "upload_time_iso_8601": "2021-12-02T17:15:20.392713Z", 87 | "url": "https://files.pythonhosted.org/packages/aa/6c/2d86245be9080e699281896d9a9e12f9876b0a9f939af26d7b7911cbfbde/datasette-hovercards-0.1a0.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "049236ab94292675cf71b9870d5c136fe43dfe2f28c6595e15ddd8568130097c", 98 | "md5": "442ffc0bc4c9101318e98eb36316d39c", 99 | "sha256": "9c9c1ddf46b7e9b17082272092483218978808f8bae7365927d305cc377da811" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_hovercards-0.1a0-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "442ffc0bc4c9101318e98eb36316d39c", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.6", 108 | "size": 3760, 109 | "upload_time": "2021-12-02T17:15:19", 110 | "upload_time_iso_8601": "2021-12-02T17:15:19.477496Z", 111 | "url": "https://files.pythonhosted.org/packages/04/92/36ab94292675cf71b9870d5c136fe43dfe2f28c6595e15ddd8568130097c/datasette_hovercards-0.1a0-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "aa6c2d86245be9080e699281896d9a9e12f9876b0a9f939af26d7b7911cbfbde", 119 | "md5": "32dea6f08e35b06d743b6cd8f405c9d0", 120 | "sha256": "0b2222f1d69317e93949bfa2096181b2679df619208a5e1113b31146466d27d6" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-hovercards-0.1a0.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "32dea6f08e35b06d743b6cd8f405c9d0", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.6", 129 | "size": 3261, 130 | "upload_time": "2021-12-02T17:15:20", 131 | "upload_time_iso_8601": "2021-12-02T17:15:20.392713Z", 132 | "url": "https://files.pythonhosted.org/packages/aa/6c/2d86245be9080e699281896d9a9e12f9876b0a9f939af26d7b7911cbfbde/datasette-hovercards-0.1a0.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/json-to-files.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# json-to-files\n\n[![PyPI](https://img.shields.io/pypi/v/json-to-files.svg)](https://pypi.org/project/json-to-files/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/json-to-files?include_prereleases&label=changelog)](https://github.com/simonw/json-to-files/releases)\n[![Tests](https://github.com/simonw/json-to-files/workflows/Test/badge.svg)](https://github.com/simonw/json-to-files/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/json-to-files/blob/master/LICENSE)\n\nCreate separate files on disk based on a JSON object\n\n## Installation\n\nInstall this tool using `pip`:\n\n pip install json-to-files\n\n## Usage\n\nThis tool takes a JSON file that looks like this:\n\n```json\n{\n \"foo.txt\": \"The contents of foo.txt\",\n \"bar/baz.txt\": \"The contents of baz.txt\"\n}\n```\nAnd uses it to write out the following files on disk:\n\n- `foo.txt` containing \"The contents of foo.txt\"\n- `bar/baz.txt` containing \"The contents of baz.txt\"\n\nYou can run it like this:\n\n json-to-files bundle.json\n\nOr you can specify a directory to write those files to:\n\n json-to-files bundle.json -d /tmp/other-directory\n\nThe `bundles.json` file name is optional - if omitted, this tool will read from standard input:\n\n cat bundle.json | json-to-files\n\n## Development\n\nTo contribute to this tool, first checkout the code. Then create a new virtual environment:\n\n cd json-to-files\n python -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/json-to-files", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "json-to-files", 22 | "package_url": "https://pypi.org/project/json-to-files/", 23 | "platform": null, 24 | "project_url": "https://pypi.org/project/json-to-files/", 25 | "project_urls": { 26 | "CI": "https://github.com/simonw/json-to-files/actions", 27 | "Changelog": "https://github.com/simonw/json-to-files/releases", 28 | "Homepage": "https://github.com/simonw/json-to-files", 29 | "Issues": "https://github.com/simonw/json-to-files/issues" 30 | }, 31 | "release_url": "https://pypi.org/project/json-to-files/0.1/", 32 | "requires_dist": [ 33 | "click", 34 | "pytest ; extra == 'test'" 35 | ], 36 | "requires_python": ">=3.7", 37 | "summary": "Create separate files on disk based on a JSON object", 38 | "version": "0.1", 39 | "yanked": false, 40 | "yanked_reason": null 41 | }, 42 | "last_serial": 16379696, 43 | "releases": { 44 | "0.1": [ 45 | { 46 | "comment_text": "", 47 | "digests": { 48 | "blake2b_256": "bb93aebcad9d449a6791a45ab9df377ce626e807c6f6b7f9352e4854831d5ab8", 49 | "md5": "006b936d50983f20d773fbb8e91fc2f2", 50 | "sha256": "4a1301eb5440b887c36a73ddec3663762a4fb0de21c6fff54832242868f87ea7" 51 | }, 52 | "downloads": -1, 53 | "filename": "json_to_files-0.1-py3-none-any.whl", 54 | "has_sig": false, 55 | "md5_digest": "006b936d50983f20d773fbb8e91fc2f2", 56 | "packagetype": "bdist_wheel", 57 | "python_version": "py3", 58 | "requires_python": ">=3.7", 59 | "size": 7464, 60 | "upload_time": "2023-01-10T20:13:28", 61 | "upload_time_iso_8601": "2023-01-10T20:13:28.794117Z", 62 | "url": "https://files.pythonhosted.org/packages/bb/93/aebcad9d449a6791a45ab9df377ce626e807c6f6b7f9352e4854831d5ab8/json_to_files-0.1-py3-none-any.whl", 63 | "yanked": false, 64 | "yanked_reason": null 65 | }, 66 | { 67 | "comment_text": "", 68 | "digests": { 69 | "blake2b_256": "27e5e64d2949d322b92333b771b49e34551b4cf9a6139b8444b23f8ab6189736", 70 | "md5": "1fda0c6bfaedf7abaf148c567faec045", 71 | "sha256": "870aec33c2963e8db2f1bda28d64f189c14b6e33d4ce5ca6de9b0e18261eedc5" 72 | }, 73 | "downloads": -1, 74 | "filename": "json-to-files-0.1.tar.gz", 75 | "has_sig": false, 76 | "md5_digest": "1fda0c6bfaedf7abaf148c567faec045", 77 | "packagetype": "sdist", 78 | "python_version": "source", 79 | "requires_python": ">=3.7", 80 | "size": 6803, 81 | "upload_time": "2023-01-10T20:13:30", 82 | "upload_time_iso_8601": "2023-01-10T20:13:30.181685Z", 83 | "url": "https://files.pythonhosted.org/packages/27/e5/e64d2949d322b92333b771b49e34551b4cf9a6139b8444b23f8ab6189736/json-to-files-0.1.tar.gz", 84 | "yanked": false, 85 | "yanked_reason": null 86 | } 87 | ] 88 | }, 89 | "urls": [ 90 | { 91 | "comment_text": "", 92 | "digests": { 93 | "blake2b_256": "bb93aebcad9d449a6791a45ab9df377ce626e807c6f6b7f9352e4854831d5ab8", 94 | "md5": "006b936d50983f20d773fbb8e91fc2f2", 95 | "sha256": "4a1301eb5440b887c36a73ddec3663762a4fb0de21c6fff54832242868f87ea7" 96 | }, 97 | "downloads": -1, 98 | "filename": "json_to_files-0.1-py3-none-any.whl", 99 | "has_sig": false, 100 | "md5_digest": "006b936d50983f20d773fbb8e91fc2f2", 101 | "packagetype": "bdist_wheel", 102 | "python_version": "py3", 103 | "requires_python": ">=3.7", 104 | "size": 7464, 105 | "upload_time": "2023-01-10T20:13:28", 106 | "upload_time_iso_8601": "2023-01-10T20:13:28.794117Z", 107 | "url": "https://files.pythonhosted.org/packages/bb/93/aebcad9d449a6791a45ab9df377ce626e807c6f6b7f9352e4854831d5ab8/json_to_files-0.1-py3-none-any.whl", 108 | "yanked": false, 109 | "yanked_reason": null 110 | }, 111 | { 112 | "comment_text": "", 113 | "digests": { 114 | "blake2b_256": "27e5e64d2949d322b92333b771b49e34551b4cf9a6139b8444b23f8ab6189736", 115 | "md5": "1fda0c6bfaedf7abaf148c567faec045", 116 | "sha256": "870aec33c2963e8db2f1bda28d64f189c14b6e33d4ce5ca6de9b0e18261eedc5" 117 | }, 118 | "downloads": -1, 119 | "filename": "json-to-files-0.1.tar.gz", 120 | "has_sig": false, 121 | "md5_digest": "1fda0c6bfaedf7abaf148c567faec045", 122 | "packagetype": "sdist", 123 | "python_version": "source", 124 | "requires_python": ">=3.7", 125 | "size": 6803, 126 | "upload_time": "2023-01-10T20:13:30", 127 | "upload_time_iso_8601": "2023-01-10T20:13:30.181685Z", 128 | "url": "https://files.pythonhosted.org/packages/27/e5/e64d2949d322b92333b771b49e34551b4cf9a6139b8444b23f8ab6189736/json-to-files-0.1.tar.gz", 129 | "yanked": false, 130 | "yanked_reason": null 131 | } 132 | ], 133 | "vulnerabilities": [] 134 | } 135 | -------------------------------------------------------------------------------- /packages/apple-notes-to-sqlite.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# apple-notes-to-sqlite\n\n[![PyPI](https://img.shields.io/pypi/v/apple-notes-to-sqlite.svg)](https://pypi.org/project/apple-notes-to-sqlite/)\n[![Changelog](https://img.shields.io/github/v/release/dogsheep/apple-notes-to-sqlite?include_prereleases&label=changelog)](https://github.com/dogsheep/apple-notes-to-sqlite/releases)\n[![Tests](https://github.com/dogsheep/apple-notes-to-sqlite/workflows/Test/badge.svg)](https://github.com/dogsheep/apple-notes-to-sqlite/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/dogsheep/apple-notes-to-sqlite/blob/master/LICENSE)\n\nExport Apple Notes to SQLite\n\n## Installation\n\nInstall this tool using `pip`:\n\n pip install apple-notes-to-sqlite\n\n## Usage\n\nFor help, run:\n\n apple-notes-to-sqlite --help\n\nYou can also use:\n\n python -m apple_notes_to_sqlite --help\n\nTo save your notes to a SQLite database called `notes.db` run:\n\n apple-notes-to-sqlite notes.db\n\nA progress bar will be shown.\n\nYou can stop it after a specified number of notes using `--stop-after`:\n\n apple-notes-to-sqlite notes.db --stop-after 10\n\n## Development\n\nTo contribute to this tool, first checkout the code. Then create a new virtual environment:\n\n cd apple-notes-to-sqlite\n python -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/dogsheep/apple-notes-to-sqlite", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "apple-notes-to-sqlite", 22 | "package_url": "https://pypi.org/project/apple-notes-to-sqlite/", 23 | "platform": null, 24 | "project_url": "https://pypi.org/project/apple-notes-to-sqlite/", 25 | "project_urls": { 26 | "CI": "https://github.com/dogsheep/apple-notes-to-sqlite/actions", 27 | "Changelog": "https://github.com/dogsheep/apple-notes-to-sqlite/releases", 28 | "Homepage": "https://github.com/dogsheep/apple-notes-to-sqlite", 29 | "Issues": "https://github.com/dogsheep/apple-notes-to-sqlite/issues" 30 | }, 31 | "release_url": "https://pypi.org/project/apple-notes-to-sqlite/0.1/", 32 | "requires_dist": [ 33 | "click", 34 | "sqlite-utils", 35 | "pytest ; extra == 'test'", 36 | "pytest-subprocess ; extra == 'test'" 37 | ], 38 | "requires_python": ">=3.7", 39 | "summary": "Export Apple Notes to SQLite", 40 | "version": "0.1", 41 | "yanked": false, 42 | "yanked_reason": null 43 | }, 44 | "last_serial": 17219182, 45 | "releases": { 46 | "0.1": [ 47 | { 48 | "comment_text": "", 49 | "digests": { 50 | "blake2b_256": "d09e7f6a6ed39fe0de5d5385bab0dd860adb44b3d40f7f9d9402bebdf4603fe7", 51 | "md5": "add9cdd7dbb91fba80dd72592763e11c", 52 | "sha256": "227ac93baf69d49fc1d01f7fb935f33025f91be0a53aa64c944dac96cbf42609" 53 | }, 54 | "downloads": -1, 55 | "filename": "apple_notes_to_sqlite-0.1-py3-none-any.whl", 56 | "has_sig": false, 57 | "md5_digest": "add9cdd7dbb91fba80dd72592763e11c", 58 | "packagetype": "bdist_wheel", 59 | "python_version": "py3", 60 | "requires_python": ">=3.7", 61 | "size": 8164, 62 | "upload_time": "2023-03-09T05:13:16", 63 | "upload_time_iso_8601": "2023-03-09T05:13:16.631908Z", 64 | "url": "https://files.pythonhosted.org/packages/d0/9e/7f6a6ed39fe0de5d5385bab0dd860adb44b3d40f7f9d9402bebdf4603fe7/apple_notes_to_sqlite-0.1-py3-none-any.whl", 65 | "yanked": false, 66 | "yanked_reason": null 67 | }, 68 | { 69 | "comment_text": "", 70 | "digests": { 71 | "blake2b_256": "a5a07694c8bec36141ff71238c0bd2d57160a838cb7a7df9183cd6309a5e20ae", 72 | "md5": "db6c42e7b5b0cc460538e8f6a89066e4", 73 | "sha256": "674636fd55219fb2e5295825dac82efd219f4658f55ac53b744bb9f1c97e73a8" 74 | }, 75 | "downloads": -1, 76 | "filename": "apple-notes-to-sqlite-0.1.tar.gz", 77 | "has_sig": false, 78 | "md5_digest": "db6c42e7b5b0cc460538e8f6a89066e4", 79 | "packagetype": "sdist", 80 | "python_version": "source", 81 | "requires_python": ">=3.7", 82 | "size": 8015, 83 | "upload_time": "2023-03-09T05:13:17", 84 | "upload_time_iso_8601": "2023-03-09T05:13:17.804095Z", 85 | "url": "https://files.pythonhosted.org/packages/a5/a0/7694c8bec36141ff71238c0bd2d57160a838cb7a7df9183cd6309a5e20ae/apple-notes-to-sqlite-0.1.tar.gz", 86 | "yanked": false, 87 | "yanked_reason": null 88 | } 89 | ] 90 | }, 91 | "urls": [ 92 | { 93 | "comment_text": "", 94 | "digests": { 95 | "blake2b_256": "d09e7f6a6ed39fe0de5d5385bab0dd860adb44b3d40f7f9d9402bebdf4603fe7", 96 | "md5": "add9cdd7dbb91fba80dd72592763e11c", 97 | "sha256": "227ac93baf69d49fc1d01f7fb935f33025f91be0a53aa64c944dac96cbf42609" 98 | }, 99 | "downloads": -1, 100 | "filename": "apple_notes_to_sqlite-0.1-py3-none-any.whl", 101 | "has_sig": false, 102 | "md5_digest": "add9cdd7dbb91fba80dd72592763e11c", 103 | "packagetype": "bdist_wheel", 104 | "python_version": "py3", 105 | "requires_python": ">=3.7", 106 | "size": 8164, 107 | "upload_time": "2023-03-09T05:13:16", 108 | "upload_time_iso_8601": "2023-03-09T05:13:16.631908Z", 109 | "url": "https://files.pythonhosted.org/packages/d0/9e/7f6a6ed39fe0de5d5385bab0dd860adb44b3d40f7f9d9402bebdf4603fe7/apple_notes_to_sqlite-0.1-py3-none-any.whl", 110 | "yanked": false, 111 | "yanked_reason": null 112 | }, 113 | { 114 | "comment_text": "", 115 | "digests": { 116 | "blake2b_256": "a5a07694c8bec36141ff71238c0bd2d57160a838cb7a7df9183cd6309a5e20ae", 117 | "md5": "db6c42e7b5b0cc460538e8f6a89066e4", 118 | "sha256": "674636fd55219fb2e5295825dac82efd219f4658f55ac53b744bb9f1c97e73a8" 119 | }, 120 | "downloads": -1, 121 | "filename": "apple-notes-to-sqlite-0.1.tar.gz", 122 | "has_sig": false, 123 | "md5_digest": "db6c42e7b5b0cc460538e8f6a89066e4", 124 | "packagetype": "sdist", 125 | "python_version": "source", 126 | "requires_python": ">=3.7", 127 | "size": 8015, 128 | "upload_time": "2023-03-09T05:13:17", 129 | "upload_time_iso_8601": "2023-03-09T05:13:17.804095Z", 130 | "url": "https://files.pythonhosted.org/packages/a5/a0/7694c8bec36141ff71238c0bd2d57160a838cb7a7df9183cd6309a5e20ae/apple-notes-to-sqlite-0.1.tar.gz", 131 | "yanked": false, 132 | "yanked_reason": null 133 | } 134 | ], 135 | "vulnerabilities": [] 136 | } 137 | -------------------------------------------------------------------------------- /packages/datasette-bplist.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-bplist\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-bplist.svg)](https://pypi.org/project/datasette-bplist/)\n[![CircleCI](https://circleci.com/gh/simonw/datasette-bplist.svg?style=svg)](https://circleci.com/gh/simonw/datasette-bplist)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-bplist/blob/master/LICENSE)\n\nDatasette plugin for working with Apple's [binary plist](https://en.wikipedia.org/wiki/Property_list) format.\n\nThis plugin adds two features: a display hook and a SQL function.\n\nThe display hook will detect any database values that are encoded using the binary plist format. It will decode them, convert them into JSON and display them pretty-printed in the Datasette UI.\n\nThe SQL function `bplist_to_json(value)` can be used inside a SQL query to convert a binary plist value into a JSON string. This can then be used with SQLite's `json_extract()` function or with the [datasette-jq](https://github.com/simonw/datasette-jq) plugin to further analyze that data as part of a SQL query.\n\nInstall this plugin in the same environment as Datasette to enable this new functionality:\n\n pip install datasette-bplist\n\n## Trying it out\n\nIf you use a Mac you already have plenty of SQLite databases that contain binary plist data.\n\nOne example is the database that powers the Apple Photos app.\n\nThis database tends to be locked, so you will need to create a copy of the database in order to run queries against it:\n\n cp ~/Pictures/Photos\\ Library.photoslibrary/database/photos.db /tmp/photos.db\n\nThe database also makes use of custom SQLite extensions which prevent it from opening in Datasette.\n\nYou can work around this by exporting the data that you want to experiment with into a new SQLite file.\n\nI recommend trying this plugin against the `RKMaster_dataNote` table, which contains plist-encoded EXIF metadata about the photos you have taken.\n\nYou can export that table into a fresh database like so:\n\n sqlite3 /tmp/photos.db \".dump RKMaster_dataNote\" | sqlite3 /tmp/exif.db\n\nNow run `datasette /tmp/exif.db` and you can start trying out the plugin.\n\n## Using the bplist_to_json() SQL function\n\nOnce you have the `exif.db` demo working, you can try the `bplist_to_json()` SQL function.\n\nHere's a query that shows the camera lenses you have used the most often to take photos:\n\n select\n json_extract(\n bplist_to_json(value),\n \"$.{Exif}.LensModel\"\n ) as lens,\n count(*) as n\n from RKMaster_dataNote\n group by lens\n order by n desc;\n\nIf you have a large number of photos this query can take a long time to execute, so you may need to increase the SQL time limit enforced by Datasette like so:\n\n $ datasette /tmp/exif.db \\\n --config sql_time_limit_ms:10000\n\nHere's another query, showing the time at which you took every photo in your library which is classified as as screenshot:\n\n select\n attachedToId,\n json_extract(\n bplist_to_json(value),\n \"$.{Exif}.DateTimeOriginal\"\n )\n from RKMaster_dataNote\n where\n json_extract(\n bplist_to_json(value),\n \"$.{Exif}.UserComment\"\n ) = \"Screenshot\"\n\nAnd if you install the [datasette-cluster-map](https://github.com/simonw/datasette-cluster-map) plugin, this query will show you a map of your most recent 1000 photos:\n\n select\n *, \n json_extract(\n bplist_to_json(value),\n \"$.{GPS}.Latitude\"\n ) as latitude,\n -json_extract(\n bplist_to_json(value),\n \"$.{GPS}.Longitude\"\n ) as longitude,\n json_extract(\n bplist_to_json(value),\n \"$.{Exif}.DateTimeOriginal\"\n ) as datetime\n from\n RKMaster_dataNote\n where\n latitude is not null\n order by\n attachedToId desc\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-bplist", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-bplist", 22 | "package_url": "https://pypi.org/project/datasette-bplist/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-bplist/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/simonw/datasette-bplist" 27 | }, 28 | "release_url": "https://pypi.org/project/datasette-bplist/0.1/", 29 | "requires_dist": [ 30 | "datasette", 31 | "bpylist", 32 | "pytest ; extra == 'test'" 33 | ], 34 | "requires_python": "", 35 | "summary": "Datasette plugin for working with Apple's binary plist format", 36 | "version": "0.1", 37 | "yanked": false, 38 | "yanked_reason": null 39 | }, 40 | "last_serial": 5376623, 41 | "releases": { 42 | "0.1": [ 43 | { 44 | "comment_text": "", 45 | "digests": { 46 | "blake2b_256": "4714269ee90f057a4672a837a976f4cd96b8622469b2945ddcd62f46dec577db", 47 | "md5": "198af42a127b8c2d953489b72fd0d6ec", 48 | "sha256": "3befe172d5621287634020e933af9b531567782058a9c1e0f969bbb72488d192" 49 | }, 50 | "downloads": -1, 51 | "filename": "datasette_bplist-0.1-py3-none-any.whl", 52 | "has_sig": false, 53 | "md5_digest": "198af42a127b8c2d953489b72fd0d6ec", 54 | "packagetype": "bdist_wheel", 55 | "python_version": "py3", 56 | "requires_python": null, 57 | "size": 7599, 58 | "upload_time": "2019-06-09T01:17:52", 59 | "upload_time_iso_8601": "2019-06-09T01:17:52.522426Z", 60 | "url": "https://files.pythonhosted.org/packages/47/14/269ee90f057a4672a837a976f4cd96b8622469b2945ddcd62f46dec577db/datasette_bplist-0.1-py3-none-any.whl", 61 | "yanked": false, 62 | "yanked_reason": null 63 | } 64 | ] 65 | }, 66 | "urls": [ 67 | { 68 | "comment_text": "", 69 | "digests": { 70 | "blake2b_256": "4714269ee90f057a4672a837a976f4cd96b8622469b2945ddcd62f46dec577db", 71 | "md5": "198af42a127b8c2d953489b72fd0d6ec", 72 | "sha256": "3befe172d5621287634020e933af9b531567782058a9c1e0f969bbb72488d192" 73 | }, 74 | "downloads": -1, 75 | "filename": "datasette_bplist-0.1-py3-none-any.whl", 76 | "has_sig": false, 77 | "md5_digest": "198af42a127b8c2d953489b72fd0d6ec", 78 | "packagetype": "bdist_wheel", 79 | "python_version": "py3", 80 | "requires_python": null, 81 | "size": 7599, 82 | "upload_time": "2019-06-09T01:17:52", 83 | "upload_time_iso_8601": "2019-06-09T01:17:52.522426Z", 84 | "url": "https://files.pythonhosted.org/packages/47/14/269ee90f057a4672a837a976f4cd96b8622469b2945ddcd62f46dec577db/datasette_bplist-0.1-py3-none-any.whl", 85 | "yanked": false, 86 | "yanked_reason": null 87 | } 88 | ], 89 | "vulnerabilities": [] 90 | } 91 | -------------------------------------------------------------------------------- /packages/datasette-render-image-tags.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-render-image-tags\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-render-image-tags.svg)](https://pypi.org/project/datasette-render-image-tags/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-render-image-tags?include_prereleases&label=changelog)](https://github.com/simonw/datasette-render-image-tags/releases)\n[![Tests](https://github.com/simonw/datasette-render-image-tags/workflows/Test/badge.svg)](https://github.com/simonw/datasette-render-image-tags/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-render-image-tags/blob/main/LICENSE)\n\nTurn any URLs ending in .jpg/.png/.gif into img tags with width 200\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-render-image-tags\n\n## Usage\n\nOnce installed, any cells contaning a URL that ends with `.png` or `.jpg` or `.jpeg` or `.gif` will be rendered using an image tag, with a width of 200px.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-render-image-tags\n python3 -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/simonw/datasette-render-image-tags", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-render-image-tags", 25 | "package_url": "https://pypi.org/project/datasette-render-image-tags/", 26 | "platform": null, 27 | "project_url": "https://pypi.org/project/datasette-render-image-tags/", 28 | "project_urls": { 29 | "CI": "https://github.com/simonw/datasette-render-image-tags/actions", 30 | "Changelog": "https://github.com/simonw/datasette-render-image-tags/releases", 31 | "Homepage": "https://github.com/simonw/datasette-render-image-tags", 32 | "Issues": "https://github.com/simonw/datasette-render-image-tags/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-render-image-tags/0.1/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.7", 41 | "summary": "Turn any URLs ending in .jpg/.png/.gif into img tags with width 200", 42 | "version": "0.1", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 14985264, 47 | "releases": { 48 | "0.1": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "0f47ee0865b04b1c73ce6d027e3ab2ce997498be53b40320dcfe53c3f6b35222", 53 | "md5": "8c783279faad4cc690d2d3edc63ea552", 54 | "sha256": "2c88a7cc77a3681439d7c3b79376c9618f724b63fef9a8e83db1dcc8c83f553e" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_render_image_tags-0.1-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "8c783279faad4cc690d2d3edc63ea552", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.7", 63 | "size": 6832, 64 | "upload_time": "2022-09-04T00:49:40", 65 | "upload_time_iso_8601": "2022-09-04T00:49:40.401786Z", 66 | "url": "https://files.pythonhosted.org/packages/0f/47/ee0865b04b1c73ce6d027e3ab2ce997498be53b40320dcfe53c3f6b35222/datasette_render_image_tags-0.1-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "a94d5ba009e3a72e6a95a2f3baa70fff10832a101df3767ceba87432f41f7e26", 74 | "md5": "73afb4af7e550e4d3386c6a57e70dc78", 75 | "sha256": "54c389e867d3339579cfa72e2fd88497855f815f503fdb42e12137676811c40d" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-render-image-tags-0.1.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "73afb4af7e550e4d3386c6a57e70dc78", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.7", 84 | "size": 6277, 85 | "upload_time": "2022-09-04T00:49:41", 86 | "upload_time_iso_8601": "2022-09-04T00:49:41.879553Z", 87 | "url": "https://files.pythonhosted.org/packages/a9/4d/5ba009e3a72e6a95a2f3baa70fff10832a101df3767ceba87432f41f7e26/datasette-render-image-tags-0.1.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "0f47ee0865b04b1c73ce6d027e3ab2ce997498be53b40320dcfe53c3f6b35222", 98 | "md5": "8c783279faad4cc690d2d3edc63ea552", 99 | "sha256": "2c88a7cc77a3681439d7c3b79376c9618f724b63fef9a8e83db1dcc8c83f553e" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_render_image_tags-0.1-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "8c783279faad4cc690d2d3edc63ea552", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.7", 108 | "size": 6832, 109 | "upload_time": "2022-09-04T00:49:40", 110 | "upload_time_iso_8601": "2022-09-04T00:49:40.401786Z", 111 | "url": "https://files.pythonhosted.org/packages/0f/47/ee0865b04b1c73ce6d027e3ab2ce997498be53b40320dcfe53c3f6b35222/datasette_render_image_tags-0.1-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "a94d5ba009e3a72e6a95a2f3baa70fff10832a101df3767ceba87432f41f7e26", 119 | "md5": "73afb4af7e550e4d3386c6a57e70dc78", 120 | "sha256": "54c389e867d3339579cfa72e2fd88497855f815f503fdb42e12137676811c40d" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-render-image-tags-0.1.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "73afb4af7e550e4d3386c6a57e70dc78", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.7", 129 | "size": 6277, 130 | "upload_time": "2022-09-04T00:49:41", 131 | "upload_time_iso_8601": "2022-09-04T00:49:41.879553Z", 132 | "url": "https://files.pythonhosted.org/packages/a9/4d/5ba009e3a72e6a95a2f3baa70fff10832a101df3767ceba87432f41f7e26/datasette-render-image-tags-0.1.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-cors.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-cors\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-cors.svg)](https://pypi.org/project/datasette-cors/)\n[![CircleCI](https://circleci.com/gh/simonw/datasette-cors.svg?style=svg)](https://circleci.com/gh/simonw/datasette-cors)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-cors/blob/master/LICENSE)\n\nDatasette plugin for configuring CORS headers, based on https://github.com/simonw/asgi-cors\n\nYou can use this plugin to allow JavaScript running on a whitelisted set of domains to make `fetch()` calls to the JSON API provided by your Datasette instance.\n\n## Installation\n\n pip install datasette-cors\n\n## Configuration\n\nYou need to add some configuration to your Datasette `metadata.json` file for this plugin to take effect.\n\nTo whitelist specific domains, use this:\n\n```json\n{\n \"plugins\": {\n \"datasette-cors\": {\n \"hosts\": [\"https://www.example.com\"]\n }\n }\n}\n```\n\nYou can also whitelist patterns like this:\n\n```json\n{\n \"plugins\": {\n \"datasette-cors\": {\n \"host_wildcards\": [\"https://*.example.com\"]\n }\n }\n}\n```\n\n## Testing it\n\nTo test this plugin out, run it locally by saving one of the above examples as `metadata.json` and running this:\n\n $ datasette --memory -m metadata.json\n\nNow visit https://www.example.com/ in your browser, open the browser developer console and paste in the following:\n\n```javascript\nfetch(\"http://127.0.0.1:8001/:memory:.json?sql=select+sqlite_version%28%29\").then(r => r.json()).then(console.log)\n```\n\nIf the plugin is running correctly, you will see the JSON response output to the console.\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-cors", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-cors", 22 | "package_url": "https://pypi.org/project/datasette-cors/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-cors/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/simonw/datasette-cors" 27 | }, 28 | "release_url": "https://pypi.org/project/datasette-cors/0.3/", 29 | "requires_dist": [ 30 | "asgi-cors (~=0.3)", 31 | "datasette (~=0.29) ; extra == 'test'", 32 | "pytest ; extra == 'test'", 33 | "pytest-asyncio ; extra == 'test'", 34 | "asgiref (~=3.1.2) ; extra == 'test'" 35 | ], 36 | "requires_python": "", 37 | "summary": "Datasette plugin for configuring CORS headers", 38 | "version": "0.3", 39 | "yanked": false, 40 | "yanked_reason": null 41 | }, 42 | "last_serial": 5515146, 43 | "releases": { 44 | "0.1": [ 45 | { 46 | "comment_text": "", 47 | "digests": { 48 | "blake2b_256": "1922cf1d3adee7c62cb868b86ac849811af498e0cd74a46bbbf89b00f95e5d36", 49 | "md5": "bf2ec071b2727a72ca7f832cb88ec686", 50 | "sha256": "8ec8fdca867dde0538561c62f4ee4c9b16f6c158015cece7241bef5a05bebfcf" 51 | }, 52 | "downloads": -1, 53 | "filename": "datasette_cors-0.1-py3-none-any.whl", 54 | "has_sig": false, 55 | "md5_digest": "bf2ec071b2727a72ca7f832cb88ec686", 56 | "packagetype": "bdist_wheel", 57 | "python_version": "py3", 58 | "requires_python": null, 59 | "size": 6155, 60 | "upload_time": "2019-07-07T21:05:34", 61 | "upload_time_iso_8601": "2019-07-07T21:05:34.373688Z", 62 | "url": "https://files.pythonhosted.org/packages/19/22/cf1d3adee7c62cb868b86ac849811af498e0cd74a46bbbf89b00f95e5d36/datasette_cors-0.1-py3-none-any.whl", 63 | "yanked": false, 64 | "yanked_reason": null 65 | } 66 | ], 67 | "0.2": [ 68 | { 69 | "comment_text": "", 70 | "digests": { 71 | "blake2b_256": "8b091698a9f541d0e8a1ee5da465ea0b4d48bc02436eb321ea9946b6d65faae0", 72 | "md5": "bcc8d4fda6d10fe5bbbd6376c5d84806", 73 | "sha256": "b503b706eb7824ce24be4876bd978b83b2764f6767c20d1f20fa786dfaf9fcef" 74 | }, 75 | "downloads": -1, 76 | "filename": "datasette_cors-0.2-py3-none-any.whl", 77 | "has_sig": false, 78 | "md5_digest": "bcc8d4fda6d10fe5bbbd6376c5d84806", 79 | "packagetype": "bdist_wheel", 80 | "python_version": "py3", 81 | "requires_python": null, 82 | "size": 6679, 83 | "upload_time": "2019-07-08T02:20:44", 84 | "upload_time_iso_8601": "2019-07-08T02:20:44.987733Z", 85 | "url": "https://files.pythonhosted.org/packages/8b/09/1698a9f541d0e8a1ee5da465ea0b4d48bc02436eb321ea9946b6d65faae0/datasette_cors-0.2-py3-none-any.whl", 86 | "yanked": false, 87 | "yanked_reason": null 88 | } 89 | ], 90 | "0.3": [ 91 | { 92 | "comment_text": "", 93 | "digests": { 94 | "blake2b_256": "1eda85322a300c5503284c652acb0b067cdf293a1ba9fc90fa656eee987f1987", 95 | "md5": "0c0f962f049abc5187feb658b0038915", 96 | "sha256": "f7cb6425d3b2806b3bcde72c23fc84f5b2402517d8655e0cd63cf0d5ef371f9a" 97 | }, 98 | "downloads": -1, 99 | "filename": "datasette_cors-0.3-py3-none-any.whl", 100 | "has_sig": false, 101 | "md5_digest": "0c0f962f049abc5187feb658b0038915", 102 | "packagetype": "bdist_wheel", 103 | "python_version": "py3", 104 | "requires_python": null, 105 | "size": 6684, 106 | "upload_time": "2019-07-11T04:41:49", 107 | "upload_time_iso_8601": "2019-07-11T04:41:49.234649Z", 108 | "url": "https://files.pythonhosted.org/packages/1e/da/85322a300c5503284c652acb0b067cdf293a1ba9fc90fa656eee987f1987/datasette_cors-0.3-py3-none-any.whl", 109 | "yanked": false, 110 | "yanked_reason": null 111 | } 112 | ] 113 | }, 114 | "urls": [ 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "1eda85322a300c5503284c652acb0b067cdf293a1ba9fc90fa656eee987f1987", 119 | "md5": "0c0f962f049abc5187feb658b0038915", 120 | "sha256": "f7cb6425d3b2806b3bcde72c23fc84f5b2402517d8655e0cd63cf0d5ef371f9a" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette_cors-0.3-py3-none-any.whl", 124 | "has_sig": false, 125 | "md5_digest": "0c0f962f049abc5187feb658b0038915", 126 | "packagetype": "bdist_wheel", 127 | "python_version": "py3", 128 | "requires_python": null, 129 | "size": 6684, 130 | "upload_time": "2019-07-11T04:41:49", 131 | "upload_time_iso_8601": "2019-07-11T04:41:49.234649Z", 132 | "url": "https://files.pythonhosted.org/packages/1e/da/85322a300c5503284c652acb0b067cdf293a1ba9fc90fa656eee987f1987/datasette_cors-0.3-py3-none-any.whl", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-verify.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-verify\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-verify.svg)](https://pypi.org/project/datasette-verify/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-verify?include_prereleases&label=changelog)](https://github.com/simonw/datasette-verify/releases)\n[![Tests](https://github.com/simonw/datasette-verify/workflows/Test/badge.svg)](https://github.com/simonw/datasette-verify/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-verify/blob/main/LICENSE)\n\nVerify that SQLite files can be opened using Datasette\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n $ datasette install datasette-verify\n\nThis plugin depends on [Datasette 0.59a2](https://github.com/simonw/datasette/releases/tag/0.59a2) or higher, as it uses the [register_commands()](https://docs.datasette.io/en/latest/plugin_hooks.html#plugin-hook-register-commands) plugin hook.\n\n## Usage\n\nTo confirm that files can be opened by Datasette, run the following:\n\n datasette verify file1.db file2.db\n\nYou can pass one or more file paths.\n\nThe command will exit silently with a 0 exit code if the files are all valid SQLite databases that Datasette can open.\n\nIt will exit with a 1 exit code and display an error for the first file it finds that is not valid.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-verify\n python3 -mvenv venv\n source venv/bin/activate\n\nOr if you are using `pipenv`:\n\n pipenv shell\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-verify", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-verify", 22 | "package_url": "https://pypi.org/project/datasette-verify/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-verify/", 25 | "project_urls": { 26 | "CI": "https://github.com/simonw/datasette-verify/actions", 27 | "Changelog": "https://github.com/simonw/datasette-verify/releases", 28 | "Homepage": "https://github.com/simonw/datasette-verify", 29 | "Issues": "https://github.com/simonw/datasette-verify/issues" 30 | }, 31 | "release_url": "https://pypi.org/project/datasette-verify/0.1/", 32 | "requires_dist": [ 33 | "datasette (>=0.59a2)", 34 | "pytest ; extra == 'test'" 35 | ], 36 | "requires_python": ">=3.6", 37 | "summary": "Verify that SQLite files can be opened using Datasette", 38 | "version": "0.1", 39 | "yanked": false, 40 | "yanked_reason": null 41 | }, 42 | "last_serial": 11299919, 43 | "releases": { 44 | "0.1": [ 45 | { 46 | "comment_text": "", 47 | "digests": { 48 | "blake2b_256": "55e0327dc4b2841d0714e4262cea412952787cd90e0b3d8e574ca01a319639c5", 49 | "md5": "f79b1a00b12da55e1a51604e35d922bc", 50 | "sha256": "ee4202e0a71d698d9eed48f9009a1473033a29ee4ea10fa859de34066ab8cfb9" 51 | }, 52 | "downloads": -1, 53 | "filename": "datasette_verify-0.1-py3-none-any.whl", 54 | "has_sig": false, 55 | "md5_digest": "f79b1a00b12da55e1a51604e35d922bc", 56 | "packagetype": "bdist_wheel", 57 | "python_version": "py3", 58 | "requires_python": ">=3.6", 59 | "size": 2681, 60 | "upload_time": "2021-08-28T02:32:25", 61 | "upload_time_iso_8601": "2021-08-28T02:32:25.071515Z", 62 | "url": "https://files.pythonhosted.org/packages/55/e0/327dc4b2841d0714e4262cea412952787cd90e0b3d8e574ca01a319639c5/datasette_verify-0.1-py3-none-any.whl", 63 | "yanked": false, 64 | "yanked_reason": null 65 | }, 66 | { 67 | "comment_text": "", 68 | "digests": { 69 | "blake2b_256": "39422bd0bd3816c3f55f4602f4e064b93d7796a977fe3855cdbfdc63dc190f2f", 70 | "md5": "c4cae6a969c52062fc293da28ad3b6ec", 71 | "sha256": "8496c3b9cda158a19788f5bad446b310a20e5d9cfddd90f9e2452450ee0f4530" 72 | }, 73 | "downloads": -1, 74 | "filename": "datasette-verify-0.1.tar.gz", 75 | "has_sig": false, 76 | "md5_digest": "c4cae6a969c52062fc293da28ad3b6ec", 77 | "packagetype": "sdist", 78 | "python_version": "source", 79 | "requires_python": ">=3.6", 80 | "size": 2519, 81 | "upload_time": "2021-08-28T02:32:26", 82 | "upload_time_iso_8601": "2021-08-28T02:32:26.278827Z", 83 | "url": "https://files.pythonhosted.org/packages/39/42/2bd0bd3816c3f55f4602f4e064b93d7796a977fe3855cdbfdc63dc190f2f/datasette-verify-0.1.tar.gz", 84 | "yanked": false, 85 | "yanked_reason": null 86 | } 87 | ] 88 | }, 89 | "urls": [ 90 | { 91 | "comment_text": "", 92 | "digests": { 93 | "blake2b_256": "55e0327dc4b2841d0714e4262cea412952787cd90e0b3d8e574ca01a319639c5", 94 | "md5": "f79b1a00b12da55e1a51604e35d922bc", 95 | "sha256": "ee4202e0a71d698d9eed48f9009a1473033a29ee4ea10fa859de34066ab8cfb9" 96 | }, 97 | "downloads": -1, 98 | "filename": "datasette_verify-0.1-py3-none-any.whl", 99 | "has_sig": false, 100 | "md5_digest": "f79b1a00b12da55e1a51604e35d922bc", 101 | "packagetype": "bdist_wheel", 102 | "python_version": "py3", 103 | "requires_python": ">=3.6", 104 | "size": 2681, 105 | "upload_time": "2021-08-28T02:32:25", 106 | "upload_time_iso_8601": "2021-08-28T02:32:25.071515Z", 107 | "url": "https://files.pythonhosted.org/packages/55/e0/327dc4b2841d0714e4262cea412952787cd90e0b3d8e574ca01a319639c5/datasette_verify-0.1-py3-none-any.whl", 108 | "yanked": false, 109 | "yanked_reason": null 110 | }, 111 | { 112 | "comment_text": "", 113 | "digests": { 114 | "blake2b_256": "39422bd0bd3816c3f55f4602f4e064b93d7796a977fe3855cdbfdc63dc190f2f", 115 | "md5": "c4cae6a969c52062fc293da28ad3b6ec", 116 | "sha256": "8496c3b9cda158a19788f5bad446b310a20e5d9cfddd90f9e2452450ee0f4530" 117 | }, 118 | "downloads": -1, 119 | "filename": "datasette-verify-0.1.tar.gz", 120 | "has_sig": false, 121 | "md5_digest": "c4cae6a969c52062fc293da28ad3b6ec", 122 | "packagetype": "sdist", 123 | "python_version": "source", 124 | "requires_python": ">=3.6", 125 | "size": 2519, 126 | "upload_time": "2021-08-28T02:32:26", 127 | "upload_time_iso_8601": "2021-08-28T02:32:26.278827Z", 128 | "url": "https://files.pythonhosted.org/packages/39/42/2bd0bd3816c3f55f4602f4e064b93d7796a977fe3855cdbfdc63dc190f2f/datasette-verify-0.1.tar.gz", 129 | "yanked": false, 130 | "yanked_reason": null 131 | } 132 | ], 133 | "vulnerabilities": [] 134 | } 135 | -------------------------------------------------------------------------------- /packages/datasette-multiline-links.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-multiline-links\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-multiline-links.svg)](https://pypi.org/project/datasette-multiline-links/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-multiline-links?include_prereleases&label=changelog)](https://github.com/simonw/datasette-multiline-links/releases)\n[![Tests](https://github.com/simonw/datasette-multiline-links/workflows/Test/badge.svg)](https://github.com/simonw/datasette-multiline-links/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-multiline-links/blob/main/LICENSE)\n\nMake multiple newline separated URLs clickable in Datasette\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-multiline-links\n\n## Usage\n\nOnce installed, if a cell has contents like this:\n```\nhttps://example.com\nNot a link\nhttps://google.com\n```\nIt will be rendered as:\n```html\nhttps://example.com\nNot a link\nhttps://google.com\n```\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-multiline-links\n python3 -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/simonw/datasette-multiline-links", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-multiline-links", 25 | "package_url": "https://pypi.org/project/datasette-multiline-links/", 26 | "platform": null, 27 | "project_url": "https://pypi.org/project/datasette-multiline-links/", 28 | "project_urls": { 29 | "CI": "https://github.com/simonw/datasette-multiline-links/actions", 30 | "Changelog": "https://github.com/simonw/datasette-multiline-links/releases", 31 | "Homepage": "https://github.com/simonw/datasette-multiline-links", 32 | "Issues": "https://github.com/simonw/datasette-multiline-links/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-multiline-links/0.1/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.7", 41 | "summary": "Make multiple newline separated URLs clickable in Datasette", 42 | "version": "0.1", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 14871366, 47 | "releases": { 48 | "0.1": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "9081a0f05e1bbe669c45594e37a373e0a7f628f25a8a9899d082f85b6ae66528", 53 | "md5": "a9ed3b723a1661f3af0da79ea5aa3781", 54 | "sha256": "198ea5411ab2d43526d976cf88279960f6847333ce1cd5938e391653417072f9" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_multiline_links-0.1-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "a9ed3b723a1661f3af0da79ea5aa3781", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.7", 63 | "size": 6795, 64 | "upload_time": "2022-08-24T22:32:50", 65 | "upload_time_iso_8601": "2022-08-24T22:32:50.478118Z", 66 | "url": "https://files.pythonhosted.org/packages/90/81/a0f05e1bbe669c45594e37a373e0a7f628f25a8a9899d082f85b6ae66528/datasette_multiline_links-0.1-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "e737332644122d2d699cdd82dd69da0f83ca5b3f73156606fba351e616116f39", 74 | "md5": "b51277523ea64e46e08e02cdf43b67a0", 75 | "sha256": "33da5e0dff9f4859c58806e9aee4fb9729b56908221a7ae828df8c91ce1f3d8e" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-multiline-links-0.1.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "b51277523ea64e46e08e02cdf43b67a0", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.7", 84 | "size": 6264, 85 | "upload_time": "2022-08-24T22:32:51", 86 | "upload_time_iso_8601": "2022-08-24T22:32:51.950208Z", 87 | "url": "https://files.pythonhosted.org/packages/e7/37/332644122d2d699cdd82dd69da0f83ca5b3f73156606fba351e616116f39/datasette-multiline-links-0.1.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "9081a0f05e1bbe669c45594e37a373e0a7f628f25a8a9899d082f85b6ae66528", 98 | "md5": "a9ed3b723a1661f3af0da79ea5aa3781", 99 | "sha256": "198ea5411ab2d43526d976cf88279960f6847333ce1cd5938e391653417072f9" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_multiline_links-0.1-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "a9ed3b723a1661f3af0da79ea5aa3781", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.7", 108 | "size": 6795, 109 | "upload_time": "2022-08-24T22:32:50", 110 | "upload_time_iso_8601": "2022-08-24T22:32:50.478118Z", 111 | "url": "https://files.pythonhosted.org/packages/90/81/a0f05e1bbe669c45594e37a373e0a7f628f25a8a9899d082f85b6ae66528/datasette_multiline_links-0.1-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "e737332644122d2d699cdd82dd69da0f83ca5b3f73156606fba351e616116f39", 119 | "md5": "b51277523ea64e46e08e02cdf43b67a0", 120 | "sha256": "33da5e0dff9f4859c58806e9aee4fb9729b56908221a7ae828df8c91ce1f3d8e" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-multiline-links-0.1.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "b51277523ea64e46e08e02cdf43b67a0", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.7", 129 | "size": 6264, 130 | "upload_time": "2022-08-24T22:32:51", 131 | "upload_time_iso_8601": "2022-08-24T22:32:51.950208Z", 132 | "url": "https://files.pythonhosted.org/packages/e7/37/332644122d2d699cdd82dd69da0f83ca5b3f73156606fba351e616116f39/datasette-multiline-links-0.1.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-placekey.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-placekey\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-placekey.svg)](https://pypi.org/project/datasette-placekey/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-placekey?include_prereleases&label=changelog)](https://github.com/simonw/datasette-placekey/releases)\n[![Tests](https://github.com/simonw/datasette-placekey/workflows/Test/badge.svg)](https://github.com/simonw/datasette-placekey/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-placekey/blob/main/LICENSE)\n\nSQL functions for working with [placekeys](https://www.placekey.io/).\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n $ datasette install datasette-placekey\n\n## Usage\n\nThe following SQL functions are exposed - [documentation here](https://placekey.github.io/placekey-py/placekey.html#module-placekey.placekey).\n\n```sql\nselect\n geo_to_placekey(33.0896104,129.7900839),\n placekey_to_geo('@6nh-nhh-kvf'),\n placekey_to_geo_latitude('@6nh-nhh-kvf'),\n placekey_to_geo_longitude('@6nh-nhh-kvf'),\n placekey_to_h3('@6nh-nhh-kvf'),\n h3_to_placekey('8a30d94e4c87fff'),\n placekey_to_geojson('@6nh-nhh-kvf'),\n placekey_to_wkt('@6nh-nhh-kvf'),\n placekey_format_is_valid('@6nh-nhh-kvf');\n```\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-placekey\n python3 -mvenv venv\n source venv/bin/activate\n\nOr if you are using `pipenv`:\n\n pipenv shell\n\nNow install the dependencies and tests:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-placekey", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-placekey", 22 | "package_url": "https://pypi.org/project/datasette-placekey/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-placekey/", 25 | "project_urls": { 26 | "CI": "https://github.com/simonw/datasette-placekey/actions", 27 | "Changelog": "https://github.com/simonw/datasette-placekey/releases", 28 | "Homepage": "https://github.com/simonw/datasette-placekey", 29 | "Issues": "https://github.com/simonw/datasette-placekey/issues" 30 | }, 31 | "release_url": "https://pypi.org/project/datasette-placekey/0.1/", 32 | "requires_dist": [ 33 | "datasette", 34 | "placekey", 35 | "pytest ; extra == 'test'", 36 | "pytest-asyncio ; extra == 'test'" 37 | ], 38 | "requires_python": ">=3.6", 39 | "summary": "SQL functions for working with placekeys", 40 | "version": "0.1", 41 | "yanked": false, 42 | "yanked_reason": null 43 | }, 44 | "last_serial": 10607781, 45 | "releases": { 46 | "0.1": [ 47 | { 48 | "comment_text": "", 49 | "digests": { 50 | "blake2b_256": "277b836225c2be3fffcaad3aa4b9cca337817b4373658f9d17969224d55fbb8e", 51 | "md5": "65d003a3f9d4b29907aa2eaeac3df584", 52 | "sha256": "a50adeb6b6e95b8e290d3273a3b47102d2007b7f18401f263d54ef37c88d4017" 53 | }, 54 | "downloads": -1, 55 | "filename": "datasette_placekey-0.1-py3-none-any.whl", 56 | "has_sig": false, 57 | "md5_digest": "65d003a3f9d4b29907aa2eaeac3df584", 58 | "packagetype": "bdist_wheel", 59 | "python_version": "py3", 60 | "requires_python": ">=3.6", 61 | "size": 2642, 62 | "upload_time": "2021-06-10T02:33:42", 63 | "upload_time_iso_8601": "2021-06-10T02:33:42.395850Z", 64 | "url": "https://files.pythonhosted.org/packages/27/7b/836225c2be3fffcaad3aa4b9cca337817b4373658f9d17969224d55fbb8e/datasette_placekey-0.1-py3-none-any.whl", 65 | "yanked": false, 66 | "yanked_reason": null 67 | }, 68 | { 69 | "comment_text": "", 70 | "digests": { 71 | "blake2b_256": "3dc312b594c1dfbe2d07db65d8953347424e9f704a8757b3ae0dbf539cc815d3", 72 | "md5": "ddfb08cef8ee5addf798402a1dafe9da", 73 | "sha256": "d21a846bf99e9ba2cdcf43466722c9963e9a32329f37e95142e2a974fe16649b" 74 | }, 75 | "downloads": -1, 76 | "filename": "datasette-placekey-0.1.tar.gz", 77 | "has_sig": false, 78 | "md5_digest": "ddfb08cef8ee5addf798402a1dafe9da", 79 | "packagetype": "sdist", 80 | "python_version": "source", 81 | "requires_python": ">=3.6", 82 | "size": 2497, 83 | "upload_time": "2021-06-10T02:33:43", 84 | "upload_time_iso_8601": "2021-06-10T02:33:43.759869Z", 85 | "url": "https://files.pythonhosted.org/packages/3d/c3/12b594c1dfbe2d07db65d8953347424e9f704a8757b3ae0dbf539cc815d3/datasette-placekey-0.1.tar.gz", 86 | "yanked": false, 87 | "yanked_reason": null 88 | } 89 | ] 90 | }, 91 | "urls": [ 92 | { 93 | "comment_text": "", 94 | "digests": { 95 | "blake2b_256": "277b836225c2be3fffcaad3aa4b9cca337817b4373658f9d17969224d55fbb8e", 96 | "md5": "65d003a3f9d4b29907aa2eaeac3df584", 97 | "sha256": "a50adeb6b6e95b8e290d3273a3b47102d2007b7f18401f263d54ef37c88d4017" 98 | }, 99 | "downloads": -1, 100 | "filename": "datasette_placekey-0.1-py3-none-any.whl", 101 | "has_sig": false, 102 | "md5_digest": "65d003a3f9d4b29907aa2eaeac3df584", 103 | "packagetype": "bdist_wheel", 104 | "python_version": "py3", 105 | "requires_python": ">=3.6", 106 | "size": 2642, 107 | "upload_time": "2021-06-10T02:33:42", 108 | "upload_time_iso_8601": "2021-06-10T02:33:42.395850Z", 109 | "url": "https://files.pythonhosted.org/packages/27/7b/836225c2be3fffcaad3aa4b9cca337817b4373658f9d17969224d55fbb8e/datasette_placekey-0.1-py3-none-any.whl", 110 | "yanked": false, 111 | "yanked_reason": null 112 | }, 113 | { 114 | "comment_text": "", 115 | "digests": { 116 | "blake2b_256": "3dc312b594c1dfbe2d07db65d8953347424e9f704a8757b3ae0dbf539cc815d3", 117 | "md5": "ddfb08cef8ee5addf798402a1dafe9da", 118 | "sha256": "d21a846bf99e9ba2cdcf43466722c9963e9a32329f37e95142e2a974fe16649b" 119 | }, 120 | "downloads": -1, 121 | "filename": "datasette-placekey-0.1.tar.gz", 122 | "has_sig": false, 123 | "md5_digest": "ddfb08cef8ee5addf798402a1dafe9da", 124 | "packagetype": "sdist", 125 | "python_version": "source", 126 | "requires_python": ">=3.6", 127 | "size": 2497, 128 | "upload_time": "2021-06-10T02:33:43", 129 | "upload_time_iso_8601": "2021-06-10T02:33:43.759869Z", 130 | "url": "https://files.pythonhosted.org/packages/3d/c3/12b594c1dfbe2d07db65d8953347424e9f704a8757b3ae0dbf539cc815d3/datasette-placekey-0.1.tar.gz", 131 | "yanked": false, 132 | "yanked_reason": null 133 | } 134 | ], 135 | "vulnerabilities": [] 136 | } 137 | -------------------------------------------------------------------------------- /packages/datasette-external-links-new-tabs.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Jacob Weisz", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-external-links-new-tabs\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-external-links-new-tabs.svg)](https://pypi.org/project/datasette-external-links-new-tabs/)\n[![Changelog](https://img.shields.io/github/v/release/ocdtrekkie/datasette-external-links-new-tabs?include_prereleases&label=changelog)](https://github.com/ocdtrekkie/datasette-external-links-new-tabs/releases)\n[![Tests](https://github.com/ocdtrekkie/datasette-external-links-new-tabs/workflows/Test/badge.svg)](https://github.com/ocdtrekkie/datasette-external-links-new-tabs/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/ocdtrekkie/datasette-external-links-new-tabs/blob/main/LICENSE)\n\nDatasette plugin to open external links in new tabs\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-external-links-new-tabs\n\n## Usage\n\nThere are no usage instructions, it simply opens external links in a new tab.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-external-links-new-tabs\n python3 -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/ocdtrekkie/datasette-external-links-new-tabs", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-external-links-new-tabs", 25 | "package_url": "https://pypi.org/project/datasette-external-links-new-tabs/", 26 | "platform": null, 27 | "project_url": "https://pypi.org/project/datasette-external-links-new-tabs/", 28 | "project_urls": { 29 | "CI": "https://github.com/ocdtrekkie/datasette-external-links-new-tabs/actions", 30 | "Changelog": "https://github.com/ocdtrekkie/datasette-external-links-new-tabs/releases", 31 | "Homepage": "https://github.com/ocdtrekkie/datasette-external-links-new-tabs", 32 | "Issues": "https://github.com/ocdtrekkie/datasette-external-links-new-tabs/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-external-links-new-tabs/0.1/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.7", 41 | "summary": "Datasette plugin to open external links in new tabs", 42 | "version": "0.1", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 15330856, 47 | "releases": { 48 | "0.1": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "aaa023abd55374b0b59de3aebd16d3215b16b245f18be00476f5392dcbaca69e", 53 | "md5": "cbf8537e5fa4fc3f2f0fe4278cbcf30c", 54 | "sha256": "bd76f9e781cdc86e453f68da6c3ea4f86c3608ff65258879c7810540f2f53da7" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_external_links_new_tabs-0.1-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "cbf8537e5fa4fc3f2f0fe4278cbcf30c", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.7", 63 | "size": 6818, 64 | "upload_time": "2022-10-07T04:43:45", 65 | "upload_time_iso_8601": "2022-10-07T04:43:45.560528Z", 66 | "url": "https://files.pythonhosted.org/packages/aa/a0/23abd55374b0b59de3aebd16d3215b16b245f18be00476f5392dcbaca69e/datasette_external_links_new_tabs-0.1-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "620dc5de5dde0c45486b9c16a826bd6111ff3dd5f4a5da22b760cd024589fcc9", 74 | "md5": "fd4944b31cb7b98144addcc8ef13876e", 75 | "sha256": "777fb7f6ab41ae4e745d20d388c75698ee3e19d761b76f2c315e137c95057e5a" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-external-links-new-tabs-0.1.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "fd4944b31cb7b98144addcc8ef13876e", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.7", 84 | "size": 6208, 85 | "upload_time": "2022-10-07T04:43:46", 86 | "upload_time_iso_8601": "2022-10-07T04:43:46.908572Z", 87 | "url": "https://files.pythonhosted.org/packages/62/0d/c5de5dde0c45486b9c16a826bd6111ff3dd5f4a5da22b760cd024589fcc9/datasette-external-links-new-tabs-0.1.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "aaa023abd55374b0b59de3aebd16d3215b16b245f18be00476f5392dcbaca69e", 98 | "md5": "cbf8537e5fa4fc3f2f0fe4278cbcf30c", 99 | "sha256": "bd76f9e781cdc86e453f68da6c3ea4f86c3608ff65258879c7810540f2f53da7" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_external_links_new_tabs-0.1-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "cbf8537e5fa4fc3f2f0fe4278cbcf30c", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.7", 108 | "size": 6818, 109 | "upload_time": "2022-10-07T04:43:45", 110 | "upload_time_iso_8601": "2022-10-07T04:43:45.560528Z", 111 | "url": "https://files.pythonhosted.org/packages/aa/a0/23abd55374b0b59de3aebd16d3215b16b245f18be00476f5392dcbaca69e/datasette_external_links_new_tabs-0.1-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "620dc5de5dde0c45486b9c16a826bd6111ff3dd5f4a5da22b760cd024589fcc9", 119 | "md5": "fd4944b31cb7b98144addcc8ef13876e", 120 | "sha256": "777fb7f6ab41ae4e745d20d388c75698ee3e19d761b76f2c315e137c95057e5a" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-external-links-new-tabs-0.1.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "fd4944b31cb7b98144addcc8ef13876e", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.7", 129 | "size": 6208, 130 | "upload_time": "2022-10-07T04:43:46", 131 | "upload_time_iso_8601": "2022-10-07T04:43:46.908572Z", 132 | "url": "https://files.pythonhosted.org/packages/62/0d/c5de5dde0c45486b9c16a826bd6111ff3dd5f4a5da22b760cd024589fcc9/datasette-external-links-new-tabs-0.1.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-template-request.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-template-request\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-template-request.svg)](https://pypi.org/project/datasette-template-request/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-template-request?include_prereleases&label=changelog)](https://github.com/simonw/datasette-template-request/releases)\n[![Tests](https://github.com/simonw/datasette-template-request/workflows/Test/badge.svg)](https://github.com/simonw/datasette-template-request/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-template-request/blob/main/LICENSE)\n\nExpose the Datasette request object to custom templates\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n $ datasette install datasette-template-request\n\n## Usage\n\nOnce this plugin is installed, Datasette [custom templates](https://docs.datasette.io/en/stable/custom_templates.html) can use `{{ request }}` to access the current [request object](https://docs.datasette.io/en/stable/internals.html#request-object). For example, to access `?name=Cleo` in the query string a template could use this:\n\n Name: {{ request.args.name }}\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-template-request\n python3 -mvenv venv\n source venv/bin/activate\n\nOr if you are using `pipenv`:\n\n pipenv shell\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-template-request", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-template-request", 22 | "package_url": "https://pypi.org/project/datasette-template-request/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-template-request/", 25 | "project_urls": { 26 | "CI": "https://github.com/simonw/datasette-template-request/actions", 27 | "Changelog": "https://github.com/simonw/datasette-template-request/releases", 28 | "Homepage": "https://github.com/simonw/datasette-template-request", 29 | "Issues": "https://github.com/simonw/datasette-template-request/issues" 30 | }, 31 | "release_url": "https://pypi.org/project/datasette-template-request/0.1/", 32 | "requires_dist": [ 33 | "datasette", 34 | "pytest ; extra == 'test'", 35 | "pytest-asyncio ; extra == 'test'" 36 | ], 37 | "requires_python": ">=3.6", 38 | "summary": "Expose the Datasette request object to custom templates", 39 | "version": "0.1", 40 | "yanked": false, 41 | "yanked_reason": null 42 | }, 43 | "last_serial": 11530794, 44 | "releases": { 45 | "0.1": [ 46 | { 47 | "comment_text": "", 48 | "digests": { 49 | "blake2b_256": "db72b685ec634172c79e5ab4d04ee4f1369f47af40932aa3c74402708cd272e5", 50 | "md5": "80ced62425378b24a0ee1778118740ab", 51 | "sha256": "edce93be789ea7bbf37d97a3121cb69048dd9f3bfff341226043f02ad9a9a9d3" 52 | }, 53 | "downloads": -1, 54 | "filename": "datasette_template_request-0.1-py3-none-any.whl", 55 | "has_sig": false, 56 | "md5_digest": "80ced62425378b24a0ee1778118740ab", 57 | "packagetype": "bdist_wheel", 58 | "python_version": "py3", 59 | "requires_python": ">=3.6", 60 | "size": 2505, 61 | "upload_time": "2021-09-23T17:30:34", 62 | "upload_time_iso_8601": "2021-09-23T17:30:34.145473Z", 63 | "url": "https://files.pythonhosted.org/packages/db/72/b685ec634172c79e5ab4d04ee4f1369f47af40932aa3c74402708cd272e5/datasette_template_request-0.1-py3-none-any.whl", 64 | "yanked": false, 65 | "yanked_reason": null 66 | }, 67 | { 68 | "comment_text": "", 69 | "digests": { 70 | "blake2b_256": "b86e6f35e338e6278c796c83eada47fd97c8c9b7cb3dced07029f091c82aff94", 71 | "md5": "de29b7262f524bdda5570a73cbad41bd", 72 | "sha256": "37e1ce795d635ca8c9df72ccd1abb8704b062bcf39f3d8f5aa5edb9e1b136f66" 73 | }, 74 | "downloads": -1, 75 | "filename": "datasette-template-request-0.1.tar.gz", 76 | "has_sig": false, 77 | "md5_digest": "de29b7262f524bdda5570a73cbad41bd", 78 | "packagetype": "sdist", 79 | "python_version": "source", 80 | "requires_python": ">=3.6", 81 | "size": 2151, 82 | "upload_time": "2021-09-23T17:30:35", 83 | "upload_time_iso_8601": "2021-09-23T17:30:35.460146Z", 84 | "url": "https://files.pythonhosted.org/packages/b8/6e/6f35e338e6278c796c83eada47fd97c8c9b7cb3dced07029f091c82aff94/datasette-template-request-0.1.tar.gz", 85 | "yanked": false, 86 | "yanked_reason": null 87 | } 88 | ] 89 | }, 90 | "urls": [ 91 | { 92 | "comment_text": "", 93 | "digests": { 94 | "blake2b_256": "db72b685ec634172c79e5ab4d04ee4f1369f47af40932aa3c74402708cd272e5", 95 | "md5": "80ced62425378b24a0ee1778118740ab", 96 | "sha256": "edce93be789ea7bbf37d97a3121cb69048dd9f3bfff341226043f02ad9a9a9d3" 97 | }, 98 | "downloads": -1, 99 | "filename": "datasette_template_request-0.1-py3-none-any.whl", 100 | "has_sig": false, 101 | "md5_digest": "80ced62425378b24a0ee1778118740ab", 102 | "packagetype": "bdist_wheel", 103 | "python_version": "py3", 104 | "requires_python": ">=3.6", 105 | "size": 2505, 106 | "upload_time": "2021-09-23T17:30:34", 107 | "upload_time_iso_8601": "2021-09-23T17:30:34.145473Z", 108 | "url": "https://files.pythonhosted.org/packages/db/72/b685ec634172c79e5ab4d04ee4f1369f47af40932aa3c74402708cd272e5/datasette_template_request-0.1-py3-none-any.whl", 109 | "yanked": false, 110 | "yanked_reason": null 111 | }, 112 | { 113 | "comment_text": "", 114 | "digests": { 115 | "blake2b_256": "b86e6f35e338e6278c796c83eada47fd97c8c9b7cb3dced07029f091c82aff94", 116 | "md5": "de29b7262f524bdda5570a73cbad41bd", 117 | "sha256": "37e1ce795d635ca8c9df72ccd1abb8704b062bcf39f3d8f5aa5edb9e1b136f66" 118 | }, 119 | "downloads": -1, 120 | "filename": "datasette-template-request-0.1.tar.gz", 121 | "has_sig": false, 122 | "md5_digest": "de29b7262f524bdda5570a73cbad41bd", 123 | "packagetype": "sdist", 124 | "python_version": "source", 125 | "requires_python": ">=3.6", 126 | "size": 2151, 127 | "upload_time": "2021-09-23T17:30:35", 128 | "upload_time_iso_8601": "2021-09-23T17:30:35.460146Z", 129 | "url": "https://files.pythonhosted.org/packages/b8/6e/6f35e338e6278c796c83eada47fd97c8c9b7cb3dced07029f091c82aff94/datasette-template-request-0.1.tar.gz", 130 | "yanked": false, 131 | "yanked_reason": null 132 | } 133 | ], 134 | "vulnerabilities": [] 135 | } 136 | -------------------------------------------------------------------------------- /packages/datasette-redirect-forbidden.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-redirect-forbidden\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-redirect-forbidden.svg)](https://pypi.org/project/datasette-redirect-forbidden/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-redirect-forbidden?include_prereleases&label=changelog)](https://github.com/simonw/datasette-redirect-forbidden/releases)\n[![Tests](https://github.com/simonw/datasette-redirect-forbidden/workflows/Test/badge.svg)](https://github.com/simonw/datasette-redirect-forbidden/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-redirect-forbidden/blob/main/LICENSE)\n\nRedirect forbidden requests to a login page\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n $ datasette install datasette-redirect-forbidden\n\n## Usage\n\nAdd the following to your `metadata.yml` (or `metadata.json`) file to configure the plugin:\n\n```yaml\nplugins:\n datasette-redirect-forbidden:\n redirect_to: /-/login\n```\nAny 403 forbidden pages will redirect to the specified page.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-redirect-forbidden\n python3 -mvenv venv\n source venv/bin/activate\n\nOr if you are using `pipenv`:\n\n pipenv shell\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n\n\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/simonw/datasette-redirect-forbidden", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-redirect-forbidden", 25 | "package_url": "https://pypi.org/project/datasette-redirect-forbidden/", 26 | "platform": "", 27 | "project_url": "https://pypi.org/project/datasette-redirect-forbidden/", 28 | "project_urls": { 29 | "CI": "https://github.com/simonw/datasette-redirect-forbidden/actions", 30 | "Changelog": "https://github.com/simonw/datasette-redirect-forbidden/releases", 31 | "Homepage": "https://github.com/simonw/datasette-redirect-forbidden", 32 | "Issues": "https://github.com/simonw/datasette-redirect-forbidden/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-redirect-forbidden/0.1/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.6", 41 | "summary": "Redirect forbidden requests to a login page", 42 | "version": "0.1", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 12988600, 47 | "releases": { 48 | "0.1": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "cf22a437fc6fb97a39056ededbfaf02c17d3fd5e8c33fb4546bc03344b2567c0", 53 | "md5": "8b25809f7d6d08ce7e7d63867246b9a6", 54 | "sha256": "9c3579e76c94fdf9b39c57ac62e314081f6d6f69a7beae38c7cbb37934f6bfc7" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_redirect_forbidden-0.1-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "8b25809f7d6d08ce7e7d63867246b9a6", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.6", 63 | "size": 6788, 64 | "upload_time": "2022-02-23T22:04:07", 65 | "upload_time_iso_8601": "2022-02-23T22:04:07.394363Z", 66 | "url": "https://files.pythonhosted.org/packages/cf/22/a437fc6fb97a39056ededbfaf02c17d3fd5e8c33fb4546bc03344b2567c0/datasette_redirect_forbidden-0.1-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "22f16e757423da2563206abd6445a5bc8b6ab38edd7dbf7b1500380175eda3fa", 74 | "md5": "522dfee1f98ffb2096670bde8ec8872c", 75 | "sha256": "b981018e27dd227554d55b664559249667243dc20b0d596be1a02c748f1cf144" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-redirect-forbidden-0.1.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "522dfee1f98ffb2096670bde8ec8872c", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.6", 84 | "size": 6199, 85 | "upload_time": "2022-02-23T22:04:08", 86 | "upload_time_iso_8601": "2022-02-23T22:04:08.865149Z", 87 | "url": "https://files.pythonhosted.org/packages/22/f1/6e757423da2563206abd6445a5bc8b6ab38edd7dbf7b1500380175eda3fa/datasette-redirect-forbidden-0.1.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "cf22a437fc6fb97a39056ededbfaf02c17d3fd5e8c33fb4546bc03344b2567c0", 98 | "md5": "8b25809f7d6d08ce7e7d63867246b9a6", 99 | "sha256": "9c3579e76c94fdf9b39c57ac62e314081f6d6f69a7beae38c7cbb37934f6bfc7" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_redirect_forbidden-0.1-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "8b25809f7d6d08ce7e7d63867246b9a6", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.6", 108 | "size": 6788, 109 | "upload_time": "2022-02-23T22:04:07", 110 | "upload_time_iso_8601": "2022-02-23T22:04:07.394363Z", 111 | "url": "https://files.pythonhosted.org/packages/cf/22/a437fc6fb97a39056ededbfaf02c17d3fd5e8c33fb4546bc03344b2567c0/datasette_redirect_forbidden-0.1-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "22f16e757423da2563206abd6445a5bc8b6ab38edd7dbf7b1500380175eda3fa", 119 | "md5": "522dfee1f98ffb2096670bde8ec8872c", 120 | "sha256": "b981018e27dd227554d55b664559249667243dc20b0d596be1a02c748f1cf144" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-redirect-forbidden-0.1.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "522dfee1f98ffb2096670bde8ec8872c", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.6", 129 | "size": 6199, 130 | "upload_time": "2022-02-23T22:04:08", 131 | "upload_time_iso_8601": "2022-02-23T22:04:08.865149Z", 132 | "url": "https://files.pythonhosted.org/packages/22/f1/6e757423da2563206abd6445a5bc8b6ab38edd7dbf7b1500380175eda3fa/datasette-redirect-forbidden-0.1.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-x-forwarded-host.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-x-forwarded-host\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-x-forwarded-host.svg)](https://pypi.org/project/datasette-x-forwarded-host/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-x-forwarded-host?include_prereleases&label=changelog)](https://github.com/simonw/datasette-x-forwarded-host/releases)\n[![Tests](https://github.com/simonw/datasette-x-forwarded-host/workflows/Test/badge.svg)](https://github.com/simonw/datasette-x-forwarded-host/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-x-forwarded-host/blob/main/LICENSE)\n\nTreat the X-Forwarded-Host header as the Host header\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n $ datasette install datasette-x-forwarded-host\n\n## Usage\n\nOnce installed, Datasette will replace the `host` header with the content of the incoming `x-forwarded-host` header.\n\nThis helps Datasette generate links to new pages that work when hosted behind a proxy that rewrites the `host` header.\n\nOnly use this plugin in deployment environmens where you know the `x-forwarded-host` header can be trusted!\n\nThis has been tested on GitHub Codespaces.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-x-forwarded-host\n python3 -mvenv venv\n source venv/bin/activate\n\nOr if you are using `pipenv`:\n\n pipenv shell\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-x-forwarded-host", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-x-forwarded-host", 22 | "package_url": "https://pypi.org/project/datasette-x-forwarded-host/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-x-forwarded-host/", 25 | "project_urls": { 26 | "CI": "https://github.com/simonw/datasette-x-forwarded-host/actions", 27 | "Changelog": "https://github.com/simonw/datasette-x-forwarded-host/releases", 28 | "Homepage": "https://github.com/simonw/datasette-x-forwarded-host", 29 | "Issues": "https://github.com/simonw/datasette-x-forwarded-host/issues" 30 | }, 31 | "release_url": "https://pypi.org/project/datasette-x-forwarded-host/0.1/", 32 | "requires_dist": [ 33 | "datasette", 34 | "pytest ; extra == 'test'", 35 | "pytest-asyncio ; extra == 'test'" 36 | ], 37 | "requires_python": ">=3.6", 38 | "summary": "Treat the X-Forwarded-Host header as the Host header", 39 | "version": "0.1", 40 | "yanked": false, 41 | "yanked_reason": null 42 | }, 43 | "last_serial": 11165248, 44 | "releases": { 45 | "0.1": [ 46 | { 47 | "comment_text": "", 48 | "digests": { 49 | "blake2b_256": "8701e7d2b3fb997e2fe537fa8cc33216b3e7f9ccf50d5476fa460fa32915cbe3", 50 | "md5": "7f582027989888436838ee8aa66fe5bf", 51 | "sha256": "81029ec554dcea24bdd74a69e8ce39e2f2dd089b12e5ecb302a709ee25410467" 52 | }, 53 | "downloads": -1, 54 | "filename": "datasette_x_forwarded_host-0.1-py3-none-any.whl", 55 | "has_sig": false, 56 | "md5_digest": "7f582027989888436838ee8aa66fe5bf", 57 | "packagetype": "bdist_wheel", 58 | "python_version": "py3", 59 | "requires_python": ">=3.6", 60 | "size": 2735, 61 | "upload_time": "2021-08-12T20:41:15", 62 | "upload_time_iso_8601": "2021-08-12T20:41:15.499352Z", 63 | "url": "https://files.pythonhosted.org/packages/87/01/e7d2b3fb997e2fe537fa8cc33216b3e7f9ccf50d5476fa460fa32915cbe3/datasette_x_forwarded_host-0.1-py3-none-any.whl", 64 | "yanked": false, 65 | "yanked_reason": null 66 | }, 67 | { 68 | "comment_text": "", 69 | "digests": { 70 | "blake2b_256": "e9b7b3f67732b39e858bfc778498820ca646851410e316ede0c1179df17c53a9", 71 | "md5": "a948a409d5db5fe5ce85591d68eb816d", 72 | "sha256": "66a516c88be7dcf8816a1140272ec234b4fff8825247de0cc3b9c22e2c6404e6" 73 | }, 74 | "downloads": -1, 75 | "filename": "datasette-x-forwarded-host-0.1.tar.gz", 76 | "has_sig": false, 77 | "md5_digest": "a948a409d5db5fe5ce85591d68eb816d", 78 | "packagetype": "sdist", 79 | "python_version": "source", 80 | "requires_python": ">=3.6", 81 | "size": 2463, 82 | "upload_time": "2021-08-12T20:41:16", 83 | "upload_time_iso_8601": "2021-08-12T20:41:16.836890Z", 84 | "url": "https://files.pythonhosted.org/packages/e9/b7/b3f67732b39e858bfc778498820ca646851410e316ede0c1179df17c53a9/datasette-x-forwarded-host-0.1.tar.gz", 85 | "yanked": false, 86 | "yanked_reason": null 87 | } 88 | ] 89 | }, 90 | "urls": [ 91 | { 92 | "comment_text": "", 93 | "digests": { 94 | "blake2b_256": "8701e7d2b3fb997e2fe537fa8cc33216b3e7f9ccf50d5476fa460fa32915cbe3", 95 | "md5": "7f582027989888436838ee8aa66fe5bf", 96 | "sha256": "81029ec554dcea24bdd74a69e8ce39e2f2dd089b12e5ecb302a709ee25410467" 97 | }, 98 | "downloads": -1, 99 | "filename": "datasette_x_forwarded_host-0.1-py3-none-any.whl", 100 | "has_sig": false, 101 | "md5_digest": "7f582027989888436838ee8aa66fe5bf", 102 | "packagetype": "bdist_wheel", 103 | "python_version": "py3", 104 | "requires_python": ">=3.6", 105 | "size": 2735, 106 | "upload_time": "2021-08-12T20:41:15", 107 | "upload_time_iso_8601": "2021-08-12T20:41:15.499352Z", 108 | "url": "https://files.pythonhosted.org/packages/87/01/e7d2b3fb997e2fe537fa8cc33216b3e7f9ccf50d5476fa460fa32915cbe3/datasette_x_forwarded_host-0.1-py3-none-any.whl", 109 | "yanked": false, 110 | "yanked_reason": null 111 | }, 112 | { 113 | "comment_text": "", 114 | "digests": { 115 | "blake2b_256": "e9b7b3f67732b39e858bfc778498820ca646851410e316ede0c1179df17c53a9", 116 | "md5": "a948a409d5db5fe5ce85591d68eb816d", 117 | "sha256": "66a516c88be7dcf8816a1140272ec234b4fff8825247de0cc3b9c22e2c6404e6" 118 | }, 119 | "downloads": -1, 120 | "filename": "datasette-x-forwarded-host-0.1.tar.gz", 121 | "has_sig": false, 122 | "md5_digest": "a948a409d5db5fe5ce85591d68eb816d", 123 | "packagetype": "sdist", 124 | "python_version": "source", 125 | "requires_python": ">=3.6", 126 | "size": 2463, 127 | "upload_time": "2021-08-12T20:41:16", 128 | "upload_time_iso_8601": "2021-08-12T20:41:16.836890Z", 129 | "url": "https://files.pythonhosted.org/packages/e9/b7/b3f67732b39e858bfc778498820ca646851410e316ede0c1179df17c53a9/datasette-x-forwarded-host-0.1.tar.gz", 130 | "yanked": false, 131 | "yanked_reason": null 132 | } 133 | ], 134 | "vulnerabilities": [] 135 | } 136 | -------------------------------------------------------------------------------- /packages/datasette-expose-env.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-expose-env\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-expose-env.svg)](https://pypi.org/project/datasette-expose-env/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-expose-env?include_prereleases&label=changelog)](https://github.com/simonw/datasette-expose-env/releases)\n[![Tests](https://github.com/simonw/datasette-expose-env/workflows/Test/badge.svg)](https://github.com/simonw/datasette-expose-env/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-expose-env/blob/main/LICENSE)\n\nDatasette plugin to expose selected environment variables at `/-/env` for debugging\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-expose-env\n\n## Configuration\n\nDecide on a list of environment variables you would like to expose, then add the following to your `metadata.yml` configuration:\n\n```yaml\nplugins:\n datasette-expose-env:\n - ENV_VAR_1\n - ENV_VAR_2\n - ENV_VAR_3\n```\n\nIf you are using JSON in a `metadata.json` file use the following:\n\n```json\n{\n \"plugins\": {\n \"datasette-expose-env\": [\n \"ENV_VAR_1\",\n \"ENV_VAR_2\",\n \"ENV_VAR_3\"\n ]\n }\n}\n```\n\nVisit `/-/env` on your Datasette instance to see the values of the environment variables.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-expose-env\n python3 -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/simonw/datasette-expose-env", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-expose-env", 25 | "package_url": "https://pypi.org/project/datasette-expose-env/", 26 | "platform": null, 27 | "project_url": "https://pypi.org/project/datasette-expose-env/", 28 | "project_urls": { 29 | "CI": "https://github.com/simonw/datasette-expose-env/actions", 30 | "Changelog": "https://github.com/simonw/datasette-expose-env/releases", 31 | "Homepage": "https://github.com/simonw/datasette-expose-env", 32 | "Issues": "https://github.com/simonw/datasette-expose-env/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-expose-env/0.1/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.7", 41 | "summary": "Datasette plugin to expose selected environment variables at /-/env for debugging", 42 | "version": "0.1", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 14324239, 47 | "releases": { 48 | "0.1": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "657c486fd6eac1c944c4f560dfeb4fbbdec6b5934cce01ced5a0195baea653c0", 53 | "md5": "dc4bed8a3a1e66a5086e1c2d5b11bce5", 54 | "sha256": "5146572133c6bcfc120f5d8f5181ce463f37a5a214a257447e3d97e25197df8d" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_expose_env-0.1-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "dc4bed8a3a1e66a5086e1c2d5b11bce5", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.7", 63 | "size": 6964, 64 | "upload_time": "2022-07-03T21:30:18", 65 | "upload_time_iso_8601": "2022-07-03T21:30:18.052933Z", 66 | "url": "https://files.pythonhosted.org/packages/65/7c/486fd6eac1c944c4f560dfeb4fbbdec6b5934cce01ced5a0195baea653c0/datasette_expose_env-0.1-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "a0190c54cc539de508b8ac38319b1158c062182d30d6b0e0ac9b5c06a3e7962b", 74 | "md5": "24d47d00de3817cb75cd506476df2f09", 75 | "sha256": "1a1d1c54ee82bbfd54d77a9551db09a54285346c54012de36094843923cfab72" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-expose-env-0.1.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "24d47d00de3817cb75cd506476df2f09", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.7", 84 | "size": 6451, 85 | "upload_time": "2022-07-03T21:30:19", 86 | "upload_time_iso_8601": "2022-07-03T21:30:19.569721Z", 87 | "url": "https://files.pythonhosted.org/packages/a0/19/0c54cc539de508b8ac38319b1158c062182d30d6b0e0ac9b5c06a3e7962b/datasette-expose-env-0.1.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "657c486fd6eac1c944c4f560dfeb4fbbdec6b5934cce01ced5a0195baea653c0", 98 | "md5": "dc4bed8a3a1e66a5086e1c2d5b11bce5", 99 | "sha256": "5146572133c6bcfc120f5d8f5181ce463f37a5a214a257447e3d97e25197df8d" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_expose_env-0.1-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "dc4bed8a3a1e66a5086e1c2d5b11bce5", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.7", 108 | "size": 6964, 109 | "upload_time": "2022-07-03T21:30:18", 110 | "upload_time_iso_8601": "2022-07-03T21:30:18.052933Z", 111 | "url": "https://files.pythonhosted.org/packages/65/7c/486fd6eac1c944c4f560dfeb4fbbdec6b5934cce01ced5a0195baea653c0/datasette_expose_env-0.1-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "a0190c54cc539de508b8ac38319b1158c062182d30d6b0e0ac9b5c06a3e7962b", 119 | "md5": "24d47d00de3817cb75cd506476df2f09", 120 | "sha256": "1a1d1c54ee82bbfd54d77a9551db09a54285346c54012de36094843923cfab72" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-expose-env-0.1.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "24d47d00de3817cb75cd506476df2f09", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.7", 129 | "size": 6451, 130 | "upload_time": "2022-07-03T21:30:19", 131 | "upload_time_iso_8601": "2022-07-03T21:30:19.569721Z", 132 | "url": "https://files.pythonhosted.org/packages/a0/19/0c54cc539de508b8ac38319b1158c062182d30d6b0e0ac9b5c06a3e7962b/datasette-expose-env-0.1.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-youtube-embed.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-youtube-embed\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-youtube-embed.svg)](https://pypi.org/project/datasette-youtube-embed/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-youtube-embed?include_prereleases&label=changelog)](https://github.com/simonw/datasette-youtube-embed/releases)\n[![Tests](https://github.com/simonw/datasette-youtube-embed/workflows/Test/badge.svg)](https://github.com/simonw/datasette-youtube-embed/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-youtube-embed/blob/main/LICENSE)\n\nTurn YouTube URLs into embedded players in Datasette\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-youtube-embed\n\n## Usage\n\nOnce installed, any columns containing URLs that look like one of these:\n\n- `https://www.youtube.com/watch?v=xyz`\n- `https://www.youtube.com/watch?v=xyz&start=30`\n- `https://www.youtube.com/watch?v=xyz&start=30&end=50`\n\nWill be turned into YouTube embeds like this:\n\n```html\n\n```\nThese will then be rendered using [Lite YouTube Embed](https://github.com/paulirish/lite-youtube-embed), which avoids loading the full YouTube embed until someone interacts with it.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-youtube-embed\n python3 -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/simonw/datasette-youtube-embed", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-youtube-embed", 25 | "package_url": "https://pypi.org/project/datasette-youtube-embed/", 26 | "platform": null, 27 | "project_url": "https://pypi.org/project/datasette-youtube-embed/", 28 | "project_urls": { 29 | "CI": "https://github.com/simonw/datasette-youtube-embed/actions", 30 | "Changelog": "https://github.com/simonw/datasette-youtube-embed/releases", 31 | "Homepage": "https://github.com/simonw/datasette-youtube-embed", 32 | "Issues": "https://github.com/simonw/datasette-youtube-embed/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-youtube-embed/0.1/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.7", 41 | "summary": "Turn YouTube URLs into embedded players in Datasette", 42 | "version": "0.1", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 16594531, 47 | "releases": { 48 | "0.1": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "d3c058b3d4b7bedac73e4e3b7e374026e589710dbb8ad047f6a8888da1c4bea4", 53 | "md5": "c2dd42b24cd3a231a256a16d1ed067a3", 54 | "sha256": "6a80574693c2c9ac8b21d6ceaa0d22f2b4ba4802807297bfb34b45c29ac81c6e" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_youtube_embed-0.1-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "c2dd42b24cd3a231a256a16d1ed067a3", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.7", 63 | "size": 11185, 64 | "upload_time": "2023-01-27T20:10:28", 65 | "upload_time_iso_8601": "2023-01-27T20:10:28.155292Z", 66 | "url": "https://files.pythonhosted.org/packages/d3/c0/58b3d4b7bedac73e4e3b7e374026e589710dbb8ad047f6a8888da1c4bea4/datasette_youtube_embed-0.1-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "6c9c69309d38e27ac5db3db3665733ec90f81d41ad17482e5b3296225dee774b", 74 | "md5": "90eb45ad9a0a4a95484bff65eedfe110", 75 | "sha256": "ef525cf1ff032504d476b18d35084f623bb714161affe6d1db0332db427489e7" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-youtube-embed-0.1.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "90eb45ad9a0a4a95484bff65eedfe110", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.7", 84 | "size": 10144, 85 | "upload_time": "2023-01-27T20:10:29", 86 | "upload_time_iso_8601": "2023-01-27T20:10:29.714118Z", 87 | "url": "https://files.pythonhosted.org/packages/6c/9c/69309d38e27ac5db3db3665733ec90f81d41ad17482e5b3296225dee774b/datasette-youtube-embed-0.1.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "d3c058b3d4b7bedac73e4e3b7e374026e589710dbb8ad047f6a8888da1c4bea4", 98 | "md5": "c2dd42b24cd3a231a256a16d1ed067a3", 99 | "sha256": "6a80574693c2c9ac8b21d6ceaa0d22f2b4ba4802807297bfb34b45c29ac81c6e" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_youtube_embed-0.1-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "c2dd42b24cd3a231a256a16d1ed067a3", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.7", 108 | "size": 11185, 109 | "upload_time": "2023-01-27T20:10:28", 110 | "upload_time_iso_8601": "2023-01-27T20:10:28.155292Z", 111 | "url": "https://files.pythonhosted.org/packages/d3/c0/58b3d4b7bedac73e4e3b7e374026e589710dbb8ad047f6a8888da1c4bea4/datasette_youtube_embed-0.1-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "6c9c69309d38e27ac5db3db3665733ec90f81d41ad17482e5b3296225dee774b", 119 | "md5": "90eb45ad9a0a4a95484bff65eedfe110", 120 | "sha256": "ef525cf1ff032504d476b18d35084f623bb714161affe6d1db0332db427489e7" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-youtube-embed-0.1.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "90eb45ad9a0a4a95484bff65eedfe110", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.7", 129 | "size": 10144, 130 | "upload_time": "2023-01-27T20:10:29", 131 | "upload_time_iso_8601": "2023-01-27T20:10:29.714118Z", 132 | "url": "https://files.pythonhosted.org/packages/6c/9c/69309d38e27ac5db3db3665733ec90f81d41ad17482e5b3296225dee774b/datasette-youtube-embed-0.1.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-matomo.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "UUDigitalHumanitiesLab", 4 | "author_email": "digitalhumanities@uu.nl", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-matomo\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-matomo.svg)](https://pypi.org/project/datasette-matomo/)\n[![Changelog](https://img.shields.io/github/v/release/UUDigitalHumanitieslab/datasette-matomo?include_prereleases&label=changelog)](https://github.com/UUDigitalHumanitieslab/datasette-matomo/releases)\n[![Tests](https://github.com/UUDigitalHumanitieslab/datasette-matomo/workflows/Test/badge.svg)](https://github.com/UUDigitalHumanitieslab/datasette-matomo/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/UUDigitalHumanitieslab/datasette-matomo/blob/main/LICENSE)\n\nAdd Matomo Web Analytics JavaScript tracking code to Datasette.\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-matomo\n\n## Usage\n\nMake your configuration available to the Datasette process as environment variables:\n\n DATASETTE_MATOMO_SERVER_URL=https://example.com/\n DATASETTE_MATOMO_SITE_ID=1\n\nThe server URL must include a final slash.\n\nIf you use `datasette publish`:\n\n datasette publish heroku example.db --install datasette-matomo \\\n --plugin-secret datasette-matomo server_url http://example.com/ \\\n --plugin-secret datasette-matomo site_id 1\n\nNote: not all `datasette publish` providers currently support the `--plugin-secret` option.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-matomo\n python3 -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/UUDigitalHumanitieslab/datasette-matomo", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-matomo", 25 | "package_url": "https://pypi.org/project/datasette-matomo/", 26 | "platform": null, 27 | "project_url": "https://pypi.org/project/datasette-matomo/", 28 | "project_urls": { 29 | "CI": "https://github.com/UUDigitalHumanitieslab/datasette-matomo/actions", 30 | "Changelog": "https://github.com/UUDigitalHumanitieslab/datasette-matomo/releases", 31 | "Homepage": "https://github.com/UUDigitalHumanitieslab/datasette-matomo", 32 | "Issues": "https://github.com/UUDigitalHumanitieslab/datasette-matomo/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-matomo/0.1.0/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.7", 41 | "summary": "Add Matomo Web Analytics tracking code to Datasette", 42 | "version": "0.1.0", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 16601706, 47 | "releases": { 48 | "0.1.0": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "d778fa4cde66583c6d964c1813eb8174d1d6a26a59241da8cce3b6900f9ad4e8", 53 | "md5": "ca188c3e3803fde0ab3b204d6ef2bc6a", 54 | "sha256": "b1142ed75241bfec536ef68b069c78c74d2815027c7c38c9804fc67853a58c0a" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_matomo-0.1.0-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "ca188c3e3803fde0ab3b204d6ef2bc6a", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.7", 63 | "size": 7401, 64 | "upload_time": "2023-01-28T15:04:59", 65 | "upload_time_iso_8601": "2023-01-28T15:04:59.759930Z", 66 | "url": "https://files.pythonhosted.org/packages/d7/78/fa4cde66583c6d964c1813eb8174d1d6a26a59241da8cce3b6900f9ad4e8/datasette_matomo-0.1.0-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "1626d472207d17d1f6f2b9f5a6b142f6962cda5f2ada14aef24d985b1816e064", 74 | "md5": "e5652082ac35e6e9a600899031c970d3", 75 | "sha256": "a5f71923fc7dc2a1c8600362139bfd016256b441766b32919f4c50dee7c6c67d" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-matomo-0.1.0.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "e5652082ac35e6e9a600899031c970d3", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.7", 84 | "size": 6920, 85 | "upload_time": "2023-01-28T15:05:01", 86 | "upload_time_iso_8601": "2023-01-28T15:05:01.583998Z", 87 | "url": "https://files.pythonhosted.org/packages/16/26/d472207d17d1f6f2b9f5a6b142f6962cda5f2ada14aef24d985b1816e064/datasette-matomo-0.1.0.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "d778fa4cde66583c6d964c1813eb8174d1d6a26a59241da8cce3b6900f9ad4e8", 98 | "md5": "ca188c3e3803fde0ab3b204d6ef2bc6a", 99 | "sha256": "b1142ed75241bfec536ef68b069c78c74d2815027c7c38c9804fc67853a58c0a" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_matomo-0.1.0-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "ca188c3e3803fde0ab3b204d6ef2bc6a", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.7", 108 | "size": 7401, 109 | "upload_time": "2023-01-28T15:04:59", 110 | "upload_time_iso_8601": "2023-01-28T15:04:59.759930Z", 111 | "url": "https://files.pythonhosted.org/packages/d7/78/fa4cde66583c6d964c1813eb8174d1d6a26a59241da8cce3b6900f9ad4e8/datasette_matomo-0.1.0-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "1626d472207d17d1f6f2b9f5a6b142f6962cda5f2ada14aef24d985b1816e064", 119 | "md5": "e5652082ac35e6e9a600899031c970d3", 120 | "sha256": "a5f71923fc7dc2a1c8600362139bfd016256b441766b32919f4c50dee7c6c67d" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-matomo-0.1.0.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "e5652082ac35e6e9a600899031c970d3", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.7", 129 | "size": 6920, 130 | "upload_time": "2023-01-28T15:05:01", 131 | "upload_time_iso_8601": "2023-01-28T15:05:01.583998Z", 132 | "url": "https://files.pythonhosted.org/packages/16/26/d472207d17d1f6f2b9f5a6b142f6962cda5f2ada14aef24d985b1816e064/datasette-matomo-0.1.0.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-column-inspect.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-column-inspect\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-column-inspect.svg)](https://pypi.org/project/datasette-column-inspect/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-column-inspect?include_prereleases&label=changelog)](https://github.com/simonw/datasette-column-inspect/releases)\n[![Tests](https://github.com/simonw/datasette-column-inspect/workflows/Test/badge.svg)](https://github.com/simonw/datasette-column-inspect/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-column-inspect/blob/main/LICENSE)\n\nHighly experimental Datasette plugin for inspecting columns.\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n $ pip install datasette-column-inspect\n\n## Usage\n\nThis plugin adds an icon to each column on the table page which opens an inspection side panel.\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-column-inspect", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-column-inspect", 22 | "package_url": "https://pypi.org/project/datasette-column-inspect/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-column-inspect/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/simonw/datasette-column-inspect" 27 | }, 28 | "release_url": "https://pypi.org/project/datasette-column-inspect/0.2a0/", 29 | "requires_dist": [ 30 | "datasette", 31 | "pytest ; extra == 'test'", 32 | "pytest-asyncio ; extra == 'test'", 33 | "httpx ; extra == 'test'", 34 | "sqlite-utils ; extra == 'test'" 35 | ], 36 | "requires_python": "", 37 | "summary": "Experimental Datasette plugin for inspecting columns", 38 | "version": "0.2a0", 39 | "yanked": false, 40 | "yanked_reason": null 41 | }, 42 | "last_serial": 8863228, 43 | "releases": { 44 | "0.1a0": [ 45 | { 46 | "comment_text": "", 47 | "digests": { 48 | "blake2b_256": "7f3e4ea608f74b1c3448eae5324e3833b52173cee532fe3db55422021b91425a", 49 | "md5": "a94ab7daa96019280772c2da36c16a1a", 50 | "sha256": "04810700b70d6c56d2b459fdefd2839f5179e458014585ded082942f165f8b07" 51 | }, 52 | "downloads": -1, 53 | "filename": "datasette_column_inspect-0.1a0-py3-none-any.whl", 54 | "has_sig": false, 55 | "md5_digest": "a94ab7daa96019280772c2da36c16a1a", 56 | "packagetype": "bdist_wheel", 57 | "python_version": "py3", 58 | "requires_python": null, 59 | "size": 9058, 60 | "upload_time": "2020-03-09T18:35:47", 61 | "upload_time_iso_8601": "2020-03-09T18:35:47.087018Z", 62 | "url": "https://files.pythonhosted.org/packages/7f/3e/4ea608f74b1c3448eae5324e3833b52173cee532fe3db55422021b91425a/datasette_column_inspect-0.1a0-py3-none-any.whl", 63 | "yanked": false, 64 | "yanked_reason": null 65 | } 66 | ], 67 | "0.2a0": [ 68 | { 69 | "comment_text": "", 70 | "digests": { 71 | "blake2b_256": "8558be1aa213636a4c3749e3e8380dfeb90bce71a48535993ccec7e973f0f304", 72 | "md5": "001dd3f8985c264ed739fdc7645cb461", 73 | "sha256": "9dff8d819b45142691a9478c69cb0cedc00575ffc4fac40d0c8fb09d19036c85" 74 | }, 75 | "downloads": -1, 76 | "filename": "datasette_column_inspect-0.2a0-py3-none-any.whl", 77 | "has_sig": false, 78 | "md5_digest": "001dd3f8985c264ed739fdc7645cb461", 79 | "packagetype": "bdist_wheel", 80 | "python_version": "py3", 81 | "requires_python": null, 82 | "size": 9247, 83 | "upload_time": "2020-12-09T21:48:58", 84 | "upload_time_iso_8601": "2020-12-09T21:48:58.714814Z", 85 | "url": "https://files.pythonhosted.org/packages/85/58/be1aa213636a4c3749e3e8380dfeb90bce71a48535993ccec7e973f0f304/datasette_column_inspect-0.2a0-py3-none-any.whl", 86 | "yanked": false, 87 | "yanked_reason": null 88 | }, 89 | { 90 | "comment_text": "", 91 | "digests": { 92 | "blake2b_256": "9d6dae3bd9b67d7ae6115c05d143da1fd9d5870e05790336e955d76e195e9aae", 93 | "md5": "125ecb84b3f7655239daf214ddaad201", 94 | "sha256": "9263f3dde05543e7598bfcfd1971d9725196949c880f8e0780884caa48836279" 95 | }, 96 | "downloads": -1, 97 | "filename": "datasette-column-inspect-0.2a0.tar.gz", 98 | "has_sig": false, 99 | "md5_digest": "125ecb84b3f7655239daf214ddaad201", 100 | "packagetype": "sdist", 101 | "python_version": "source", 102 | "requires_python": null, 103 | "size": 4544, 104 | "upload_time": "2020-12-09T21:48:59", 105 | "upload_time_iso_8601": "2020-12-09T21:48:59.427822Z", 106 | "url": "https://files.pythonhosted.org/packages/9d/6d/ae3bd9b67d7ae6115c05d143da1fd9d5870e05790336e955d76e195e9aae/datasette-column-inspect-0.2a0.tar.gz", 107 | "yanked": false, 108 | "yanked_reason": null 109 | } 110 | ] 111 | }, 112 | "urls": [ 113 | { 114 | "comment_text": "", 115 | "digests": { 116 | "blake2b_256": "8558be1aa213636a4c3749e3e8380dfeb90bce71a48535993ccec7e973f0f304", 117 | "md5": "001dd3f8985c264ed739fdc7645cb461", 118 | "sha256": "9dff8d819b45142691a9478c69cb0cedc00575ffc4fac40d0c8fb09d19036c85" 119 | }, 120 | "downloads": -1, 121 | "filename": "datasette_column_inspect-0.2a0-py3-none-any.whl", 122 | "has_sig": false, 123 | "md5_digest": "001dd3f8985c264ed739fdc7645cb461", 124 | "packagetype": "bdist_wheel", 125 | "python_version": "py3", 126 | "requires_python": null, 127 | "size": 9247, 128 | "upload_time": "2020-12-09T21:48:58", 129 | "upload_time_iso_8601": "2020-12-09T21:48:58.714814Z", 130 | "url": "https://files.pythonhosted.org/packages/85/58/be1aa213636a4c3749e3e8380dfeb90bce71a48535993ccec7e973f0f304/datasette_column_inspect-0.2a0-py3-none-any.whl", 131 | "yanked": false, 132 | "yanked_reason": null 133 | }, 134 | { 135 | "comment_text": "", 136 | "digests": { 137 | "blake2b_256": "9d6dae3bd9b67d7ae6115c05d143da1fd9d5870e05790336e955d76e195e9aae", 138 | "md5": "125ecb84b3f7655239daf214ddaad201", 139 | "sha256": "9263f3dde05543e7598bfcfd1971d9725196949c880f8e0780884caa48836279" 140 | }, 141 | "downloads": -1, 142 | "filename": "datasette-column-inspect-0.2a0.tar.gz", 143 | "has_sig": false, 144 | "md5_digest": "125ecb84b3f7655239daf214ddaad201", 145 | "packagetype": "sdist", 146 | "python_version": "source", 147 | "requires_python": null, 148 | "size": 4544, 149 | "upload_time": "2020-12-09T21:48:59", 150 | "upload_time_iso_8601": "2020-12-09T21:48:59.427822Z", 151 | "url": "https://files.pythonhosted.org/packages/9d/6d/ae3bd9b67d7ae6115c05d143da1fd9d5870e05790336e955d76e195e9aae/datasette-column-inspect-0.2a0.tar.gz", 152 | "yanked": false, 153 | "yanked_reason": null 154 | } 155 | ], 156 | "vulnerabilities": [] 157 | } 158 | -------------------------------------------------------------------------------- /packages/datasette-export.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-export\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-export.svg)](https://pypi.org/project/datasette-export/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-export?include_prereleases&label=changelog)](https://github.com/simonw/datasette-export/releases)\n[![Tests](https://github.com/simonw/datasette-export/workflows/Test/badge.svg)](https://github.com/simonw/datasette-export/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-export/blob/main/LICENSE)\n\nExport pages from Datasette to files on disk\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-export\n\n## Usage\n\nThis plugin adds a new `export` command. You can use this to export one or more pages from Datasette to files on disk.\n\nPass the `--path` option one or more times to specify pages:\n\n datasette export mydata.db --path / --path /mydata.json --path /mydata/table1.csv\n\nThis will create an `export/` directory and save the following files to it:\n\n- `index.html`\n- `mydata.json`\n- `mydata/table1.csv`\n\nUse `--output` to specify an alternative directory for the export:\n\n datasette export mydata.db --path / --output mywebsite/\n\nIn addition to specifying paths, you can pass one or more SQL queries that can return lists of pages to be exported:\n\n datasette export mydata.db --sql \"select path from pages\"\n\nFor example, to export JSON for every row in the `fixtures/facetable` table:\n\n datasette export fixtures.db \\\n --sql \"select '/fixtures/facetable/' || pk || '.json' from facetable\"\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-export\n python3 -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/simonw/datasette-export", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-export", 25 | "package_url": "https://pypi.org/project/datasette-export/", 26 | "platform": null, 27 | "project_url": "https://pypi.org/project/datasette-export/", 28 | "project_urls": { 29 | "CI": "https://github.com/simonw/datasette-export/actions", 30 | "Changelog": "https://github.com/simonw/datasette-export/releases", 31 | "Homepage": "https://github.com/simonw/datasette-export", 32 | "Issues": "https://github.com/simonw/datasette-export/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-export/0.1a0/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.7", 41 | "summary": "Export pages from Datasette to files on disk", 42 | "version": "0.1a0", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 15901601, 47 | "releases": { 48 | "0.1a0": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "dec7d486319357f442c817926e238fe98690c44fadc14e61601ab8e0e4bacb35", 53 | "md5": "066b02f173c09fe1945541cb2699966b", 54 | "sha256": "cb287d06dadb8ab7d4e60bc8f877773e4a733bf0cfbcc6ecd5b15756fd4e4899" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_export-0.1a0-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "066b02f173c09fe1945541cb2699966b", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.7", 63 | "size": 7631, 64 | "upload_time": "2022-11-27T04:21:15", 65 | "upload_time_iso_8601": "2022-11-27T04:21:15.139183Z", 66 | "url": "https://files.pythonhosted.org/packages/de/c7/d486319357f442c817926e238fe98690c44fadc14e61601ab8e0e4bacb35/datasette_export-0.1a0-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "c3efc64af64001a4370b9435bdb8c7b8e8f55fae415232b0332a40cf84cad2e8", 74 | "md5": "d373d842825d8228580123ca97cf661d", 75 | "sha256": "3064cc2826bfbca7eb9d9649d64427f7c8b6cee576e2584b5929e1e0daa8832a" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-export-0.1a0.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "d373d842825d8228580123ca97cf661d", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.7", 84 | "size": 7217, 85 | "upload_time": "2022-11-27T04:21:16", 86 | "upload_time_iso_8601": "2022-11-27T04:21:16.584902Z", 87 | "url": "https://files.pythonhosted.org/packages/c3/ef/c64af64001a4370b9435bdb8c7b8e8f55fae415232b0332a40cf84cad2e8/datasette-export-0.1a0.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "dec7d486319357f442c817926e238fe98690c44fadc14e61601ab8e0e4bacb35", 98 | "md5": "066b02f173c09fe1945541cb2699966b", 99 | "sha256": "cb287d06dadb8ab7d4e60bc8f877773e4a733bf0cfbcc6ecd5b15756fd4e4899" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_export-0.1a0-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "066b02f173c09fe1945541cb2699966b", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.7", 108 | "size": 7631, 109 | "upload_time": "2022-11-27T04:21:15", 110 | "upload_time_iso_8601": "2022-11-27T04:21:15.139183Z", 111 | "url": "https://files.pythonhosted.org/packages/de/c7/d486319357f442c817926e238fe98690c44fadc14e61601ab8e0e4bacb35/datasette_export-0.1a0-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "c3efc64af64001a4370b9435bdb8c7b8e8f55fae415232b0332a40cf84cad2e8", 119 | "md5": "d373d842825d8228580123ca97cf661d", 120 | "sha256": "3064cc2826bfbca7eb9d9649d64427f7c8b6cee576e2584b5929e1e0daa8832a" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-export-0.1a0.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "d373d842825d8228580123ca97cf661d", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.7", 129 | "size": 7217, 130 | "upload_time": "2022-11-27T04:21:16", 131 | "upload_time_iso_8601": "2022-11-27T04:21:16.584902Z", 132 | "url": "https://files.pythonhosted.org/packages/c3/ef/c64af64001a4370b9435bdb8c7b8e8f55fae415232b0332a40cf84cad2e8/datasette-export-0.1a0.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | -------------------------------------------------------------------------------- /packages/datasette-haversine.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [], 7 | "description": "# datasette-haversine\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-haversine.svg)](https://pypi.org/project/datasette-haversine/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-haversine?include_prereleases&label=changelog)](https://github.com/simonw/datasette-haversine/releases)\n[![Tests](https://github.com/simonw/datasette-haversine/workflows/Test/badge.svg)](https://github.com/simonw/datasette-haversine/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-haversine/blob/main/LICENSE)\n\nDatasette plugin that adds a custom SQL function for haversine distances\n\nInstall this plugin in the same environment as Datasette to enable the `haversine()` SQL function.\n\n $ pip install datasette-haversine\n\nThe plugin is built on top of the [haversine](https://github.com/mapado/haversine) library.\n\n## haversine() to calculate distances\n\n```sql\nselect haversine(lat1, lon1, lat2, lon2);\n```\n\nThis will return the distance in kilometers between the point defined by `(lat1, lon1)` and the point defined by `(lat2, lon2)`.\n\n## Custom units\n\nBy default `haversine()` returns results in km. You can pass an optional third argument to get results in a different unit:\n\n- `ft` for feet\n- `m` for meters\n- `in` for inches\n- `mi` for miles\n- `nmi` for nautical miles\n- `km` for kilometers (the default)\n\n```sql\nselect haversine(lat1, lon1, lat2, lon2, 'mi');\n```\n\n\n", 8 | "description_content_type": "text/markdown", 9 | "docs_url": null, 10 | "download_url": "", 11 | "downloads": { 12 | "last_day": -1, 13 | "last_month": -1, 14 | "last_week": -1 15 | }, 16 | "home_page": "https://github.com/simonw/datasette-haversine", 17 | "keywords": "", 18 | "license": "Apache License, Version 2.0", 19 | "maintainer": "", 20 | "maintainer_email": "", 21 | "name": "datasette-haversine", 22 | "package_url": "https://pypi.org/project/datasette-haversine/", 23 | "platform": "", 24 | "project_url": "https://pypi.org/project/datasette-haversine/", 25 | "project_urls": { 26 | "Homepage": "https://github.com/simonw/datasette-haversine" 27 | }, 28 | "release_url": "https://pypi.org/project/datasette-haversine/0.2/", 29 | "requires_dist": [ 30 | "datasette", 31 | "haversine", 32 | "pytest ; extra == 'test'" 33 | ], 34 | "requires_python": "", 35 | "summary": "Datasette plugin that adds a custom SQL function for haversine distances", 36 | "version": "0.2", 37 | "yanked": false, 38 | "yanked_reason": null 39 | }, 40 | "last_serial": 11031119, 41 | "releases": { 42 | "0.1": [ 43 | { 44 | "comment_text": "", 45 | "digests": { 46 | "blake2b_256": "1a5c0dd7c88dc0e6cbaa1a1bfe6bfbc878e5b311d1402ec1bea43ad673d5b741", 47 | "md5": "87420a5929cf6a368905c15b78e4fed0", 48 | "sha256": "2496d53a3c99b15a75fdb5df3d6cd32c692c2e61b9fd58a26c4e4ca4c921ac44" 49 | }, 50 | "downloads": -1, 51 | "filename": "datasette_haversine-0.1-py3-none-any.whl", 52 | "has_sig": false, 53 | "md5_digest": "87420a5929cf6a368905c15b78e4fed0", 54 | "packagetype": "bdist_wheel", 55 | "python_version": "py3", 56 | "requires_python": null, 57 | "size": 6481, 58 | "upload_time": "2019-10-24T05:19:29", 59 | "upload_time_iso_8601": "2019-10-24T05:19:29.572647Z", 60 | "url": "https://files.pythonhosted.org/packages/1a/5c/0dd7c88dc0e6cbaa1a1bfe6bfbc878e5b311d1402ec1bea43ad673d5b741/datasette_haversine-0.1-py3-none-any.whl", 61 | "yanked": false, 62 | "yanked_reason": null 63 | } 64 | ], 65 | "0.2": [ 66 | { 67 | "comment_text": "", 68 | "digests": { 69 | "blake2b_256": "7bcf1a80bf2b79011b6c97ab7dd2da949eb946060fea63b90006c4022f5d6875", 70 | "md5": "12ddca14b40150bf510d5c15b7f33875", 71 | "sha256": "b2185a14d87e353d6afaf02450dfb87df27cd2b0d24e3aa25686a6571e16aa4c" 72 | }, 73 | "downloads": -1, 74 | "filename": "datasette_haversine-0.2-py3-none-any.whl", 75 | "has_sig": false, 76 | "md5_digest": "12ddca14b40150bf510d5c15b7f33875", 77 | "packagetype": "bdist_wheel", 78 | "python_version": "py3", 79 | "requires_python": null, 80 | "size": 6551, 81 | "upload_time": "2021-07-28T20:15:25", 82 | "upload_time_iso_8601": "2021-07-28T20:15:25.808336Z", 83 | "url": "https://files.pythonhosted.org/packages/7b/cf/1a80bf2b79011b6c97ab7dd2da949eb946060fea63b90006c4022f5d6875/datasette_haversine-0.2-py3-none-any.whl", 84 | "yanked": false, 85 | "yanked_reason": null 86 | }, 87 | { 88 | "comment_text": "", 89 | "digests": { 90 | "blake2b_256": "62c36231dafdffaa6ccddc8a4810bc0f41c5d7e05cd0c7748077df701fc17729", 91 | "md5": "0261747cd0ee349fc6982605558b692c", 92 | "sha256": "e46be1dbf2210dabc8647bd3f633db6f9bc0f967c3a4e3f0cf78bbc449e2c1f6" 93 | }, 94 | "downloads": -1, 95 | "filename": "datasette-haversine-0.2.tar.gz", 96 | "has_sig": false, 97 | "md5_digest": "0261747cd0ee349fc6982605558b692c", 98 | "packagetype": "sdist", 99 | "python_version": "source", 100 | "requires_python": null, 101 | "size": 6118, 102 | "upload_time": "2021-07-28T20:15:27", 103 | "upload_time_iso_8601": "2021-07-28T20:15:27.048855Z", 104 | "url": "https://files.pythonhosted.org/packages/62/c3/6231dafdffaa6ccddc8a4810bc0f41c5d7e05cd0c7748077df701fc17729/datasette-haversine-0.2.tar.gz", 105 | "yanked": false, 106 | "yanked_reason": null 107 | } 108 | ] 109 | }, 110 | "urls": [ 111 | { 112 | "comment_text": "", 113 | "digests": { 114 | "blake2b_256": "7bcf1a80bf2b79011b6c97ab7dd2da949eb946060fea63b90006c4022f5d6875", 115 | "md5": "12ddca14b40150bf510d5c15b7f33875", 116 | "sha256": "b2185a14d87e353d6afaf02450dfb87df27cd2b0d24e3aa25686a6571e16aa4c" 117 | }, 118 | "downloads": -1, 119 | "filename": "datasette_haversine-0.2-py3-none-any.whl", 120 | "has_sig": false, 121 | "md5_digest": "12ddca14b40150bf510d5c15b7f33875", 122 | "packagetype": "bdist_wheel", 123 | "python_version": "py3", 124 | "requires_python": null, 125 | "size": 6551, 126 | "upload_time": "2021-07-28T20:15:25", 127 | "upload_time_iso_8601": "2021-07-28T20:15:25.808336Z", 128 | "url": "https://files.pythonhosted.org/packages/7b/cf/1a80bf2b79011b6c97ab7dd2da949eb946060fea63b90006c4022f5d6875/datasette_haversine-0.2-py3-none-any.whl", 129 | "yanked": false, 130 | "yanked_reason": null 131 | }, 132 | { 133 | "comment_text": "", 134 | "digests": { 135 | "blake2b_256": "62c36231dafdffaa6ccddc8a4810bc0f41c5d7e05cd0c7748077df701fc17729", 136 | "md5": "0261747cd0ee349fc6982605558b692c", 137 | "sha256": "e46be1dbf2210dabc8647bd3f633db6f9bc0f967c3a4e3f0cf78bbc449e2c1f6" 138 | }, 139 | "downloads": -1, 140 | "filename": "datasette-haversine-0.2.tar.gz", 141 | "has_sig": false, 142 | "md5_digest": "0261747cd0ee349fc6982605558b692c", 143 | "packagetype": "sdist", 144 | "python_version": "source", 145 | "requires_python": null, 146 | "size": 6118, 147 | "upload_time": "2021-07-28T20:15:27", 148 | "upload_time_iso_8601": "2021-07-28T20:15:27.048855Z", 149 | "url": "https://files.pythonhosted.org/packages/62/c3/6231dafdffaa6ccddc8a4810bc0f41c5d7e05cd0c7748077df701fc17729/datasette-haversine-0.2.tar.gz", 150 | "yanked": false, 151 | "yanked_reason": null 152 | } 153 | ], 154 | "vulnerabilities": [] 155 | } 156 | -------------------------------------------------------------------------------- /packages/datasette-total-page-time.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "Simon Willison", 4 | "author_email": "", 5 | "bugtrack_url": null, 6 | "classifiers": [ 7 | "Framework :: Datasette", 8 | "License :: OSI Approved :: Apache Software License" 9 | ], 10 | "description": "# datasette-total-page-time\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-total-page-time.svg)](https://pypi.org/project/datasette-total-page-time/)\n[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-total-page-time?include_prereleases&label=changelog)](https://github.com/simonw/datasette-total-page-time/releases)\n[![Tests](https://github.com/simonw/datasette-total-page-time/workflows/Test/badge.svg)](https://github.com/simonw/datasette-total-page-time/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-total-page-time/blob/main/LICENSE)\n\nAdd a note to the Datasette footer measuring the total page load time\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-total-page-time\n\n## Usage\n\nOnce this plugin is installed, a note will appear in the footer of every page showing how long the page took to generate.\n\n> Queries took 326.74ms · Page took 386.310ms\n\n## How it works\n\nMeasuring how long a page takes to load and then injecting that note into the page is tricky, because you need to finish generating the page before you know how long it took to load it!\n\nThis plugin uses the [asgi_wrapper](https://docs.datasette.io/en/stable/plugin_hooks.html#asgi-wrapper-datasette) plugin hook to measure the time taken by Datasette and then inject the following JavaScript at the bottom of the response, after the closing `` tag but with the correct measured value:\n\n```html\n\n```\nThis script is injected only on pages with the `text/html` content type - so it should not affect JSON or CSV returned by Datasette.\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-total-page-time\n python3 -mvenv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n\n\n", 11 | "description_content_type": "text/markdown", 12 | "docs_url": null, 13 | "download_url": "", 14 | "downloads": { 15 | "last_day": -1, 16 | "last_month": -1, 17 | "last_week": -1 18 | }, 19 | "home_page": "https://github.com/simonw/datasette-total-page-time", 20 | "keywords": "", 21 | "license": "Apache License, Version 2.0", 22 | "maintainer": "", 23 | "maintainer_email": "", 24 | "name": "datasette-total-page-time", 25 | "package_url": "https://pypi.org/project/datasette-total-page-time/", 26 | "platform": null, 27 | "project_url": "https://pypi.org/project/datasette-total-page-time/", 28 | "project_urls": { 29 | "CI": "https://github.com/simonw/datasette-total-page-time/actions", 30 | "Changelog": "https://github.com/simonw/datasette-total-page-time/releases", 31 | "Homepage": "https://github.com/simonw/datasette-total-page-time", 32 | "Issues": "https://github.com/simonw/datasette-total-page-time/issues" 33 | }, 34 | "release_url": "https://pypi.org/project/datasette-total-page-time/0.1/", 35 | "requires_dist": [ 36 | "datasette", 37 | "pytest ; extra == 'test'", 38 | "pytest-asyncio ; extra == 'test'" 39 | ], 40 | "requires_python": ">=3.7", 41 | "summary": "Add a note to the Datasette footer measuring the total page load time", 42 | "version": "0.1", 43 | "yanked": false, 44 | "yanked_reason": null 45 | }, 46 | "last_serial": 13632487, 47 | "releases": { 48 | "0.1": [ 49 | { 50 | "comment_text": "", 51 | "digests": { 52 | "blake2b_256": "aa20541417048ac6cd326799a4dd8348e86cd50b2512f26e5333e9195fe579b1", 53 | "md5": "e28857e1667c7ab9b154c0217a2ebf07", 54 | "sha256": "6b21682605417bbef4da31b81e1af6233e5126488eaba5b747e51d90392c0fa0" 55 | }, 56 | "downloads": -1, 57 | "filename": "datasette_total_page_time-0.1-py3-none-any.whl", 58 | "has_sig": false, 59 | "md5_digest": "e28857e1667c7ab9b154c0217a2ebf07", 60 | "packagetype": "bdist_wheel", 61 | "python_version": "py3", 62 | "requires_python": ">=3.7", 63 | "size": 7590, 64 | "upload_time": "2022-04-26T22:13:10", 65 | "upload_time_iso_8601": "2022-04-26T22:13:10.837183Z", 66 | "url": "https://files.pythonhosted.org/packages/aa/20/541417048ac6cd326799a4dd8348e86cd50b2512f26e5333e9195fe579b1/datasette_total_page_time-0.1-py3-none-any.whl", 67 | "yanked": false, 68 | "yanked_reason": null 69 | }, 70 | { 71 | "comment_text": "", 72 | "digests": { 73 | "blake2b_256": "252d432099d52fe682ee227a4cfcdff8018b3647e3428d7de9f43af485deff3c", 74 | "md5": "fb260b990f65ecac76e3b1ddda5a927c", 75 | "sha256": "ca5466fe5d894bdb4cf10b057f2070fdf3789d2af43c7c842ec1c47de344449a" 76 | }, 77 | "downloads": -1, 78 | "filename": "datasette-total-page-time-0.1.tar.gz", 79 | "has_sig": false, 80 | "md5_digest": "fb260b990f65ecac76e3b1ddda5a927c", 81 | "packagetype": "sdist", 82 | "python_version": "source", 83 | "requires_python": ">=3.7", 84 | "size": 6934, 85 | "upload_time": "2022-04-26T22:13:12", 86 | "upload_time_iso_8601": "2022-04-26T22:13:12.175609Z", 87 | "url": "https://files.pythonhosted.org/packages/25/2d/432099d52fe682ee227a4cfcdff8018b3647e3428d7de9f43af485deff3c/datasette-total-page-time-0.1.tar.gz", 88 | "yanked": false, 89 | "yanked_reason": null 90 | } 91 | ] 92 | }, 93 | "urls": [ 94 | { 95 | "comment_text": "", 96 | "digests": { 97 | "blake2b_256": "aa20541417048ac6cd326799a4dd8348e86cd50b2512f26e5333e9195fe579b1", 98 | "md5": "e28857e1667c7ab9b154c0217a2ebf07", 99 | "sha256": "6b21682605417bbef4da31b81e1af6233e5126488eaba5b747e51d90392c0fa0" 100 | }, 101 | "downloads": -1, 102 | "filename": "datasette_total_page_time-0.1-py3-none-any.whl", 103 | "has_sig": false, 104 | "md5_digest": "e28857e1667c7ab9b154c0217a2ebf07", 105 | "packagetype": "bdist_wheel", 106 | "python_version": "py3", 107 | "requires_python": ">=3.7", 108 | "size": 7590, 109 | "upload_time": "2022-04-26T22:13:10", 110 | "upload_time_iso_8601": "2022-04-26T22:13:10.837183Z", 111 | "url": "https://files.pythonhosted.org/packages/aa/20/541417048ac6cd326799a4dd8348e86cd50b2512f26e5333e9195fe579b1/datasette_total_page_time-0.1-py3-none-any.whl", 112 | "yanked": false, 113 | "yanked_reason": null 114 | }, 115 | { 116 | "comment_text": "", 117 | "digests": { 118 | "blake2b_256": "252d432099d52fe682ee227a4cfcdff8018b3647e3428d7de9f43af485deff3c", 119 | "md5": "fb260b990f65ecac76e3b1ddda5a927c", 120 | "sha256": "ca5466fe5d894bdb4cf10b057f2070fdf3789d2af43c7c842ec1c47de344449a" 121 | }, 122 | "downloads": -1, 123 | "filename": "datasette-total-page-time-0.1.tar.gz", 124 | "has_sig": false, 125 | "md5_digest": "fb260b990f65ecac76e3b1ddda5a927c", 126 | "packagetype": "sdist", 127 | "python_version": "source", 128 | "requires_python": ">=3.7", 129 | "size": 6934, 130 | "upload_time": "2022-04-26T22:13:12", 131 | "upload_time_iso_8601": "2022-04-26T22:13:12.175609Z", 132 | "url": "https://files.pythonhosted.org/packages/25/2d/432099d52fe682ee227a4cfcdff8018b3647e3428d7de9f43af485deff3c/datasette-total-page-time-0.1.tar.gz", 133 | "yanked": false, 134 | "yanked_reason": null 135 | } 136 | ], 137 | "vulnerabilities": [] 138 | } 139 | --------------------------------------------------------------------------------