Wykres commitów

185 Commity (main)

Autor SHA1 Wiadomość Data
dependabot-preview[bot] b4a8e70957
Update asgiref requirement from ~=3.2.10 to >=3.2.10,<3.4.0 (#1018)
Updates the requirements on [asgiref](https://github.com/django/asgiref) to permit the latest version.
- [Release notes](https://github.com/django/asgiref/releases)
- [Changelog](https://github.com/django/asgiref/blob/master/CHANGELOG.txt)
- [Commits](https://github.com/django/asgiref/compare/3.2.10...3.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-14 14:51:34 -07:00
Simon Willison 1bdbc8aa7f Datasette now supports Python 3.9 2020-10-09 10:57:55 -07:00
Simon Willison 8f97b9b58e
datasette.client internal requests mechanism
Closes #943

* Datasette now requires httpx>=0.15
* Support OPTIONS without 500, closes #1001
* Added internals tests for datasette.client methods
* Datasette's own test mechanism now uses httpx to simulate requests
* Tests simulate HTTP 1.1 now
* Added base_url in a bunch more places
* Mark some tests as xfail - will remove that when new httpx release ships: #1005
2020-10-09 09:11:24 -07:00
dependabot-preview[bot] 1f021c3711
Update pytest requirement from <6.1.0,>=5.2.2 to >=5.2.2,<6.2.0 (#977)
Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/5.2.2...6.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-28 15:16:34 -07:00
Simon Willison a648bb82ba Upgrade to Black 20.8b1, closes #958 2020-09-02 15:24:55 -07:00
Simon Willison 5e0b72247e
Run CI on GitHub Actions, not Travis
* Run CI on GitHub Actions, not Travis - refs #940
* Update documentation refs to Travis
* Release action now runs parallel tests, then pushes to PyPI, then Docker Hub
2020-08-17 22:09:34 -07:00
Simon Willison 41ddc19756
Docs now live at docs.datasette.io (#937) 2020-08-15 16:57:05 -07:00
Simon Willison b86f94883b
Don't hang in db.execute_write_fn() if connection fails
Closes #935

Refs https://github.com/simonw/latest-datasette-with-all-plugins/issues/3
2020-08-15 15:35:31 -07:00
Simon Willison e139a7619f
'datasette --get' option, closes #926
Also made a start on the datasette.utils.testing module, refs #898
2020-08-11 17:24:40 -07:00
Simon Willison 6a126fa25f
Removed aiohttp from test dependencies
It wasn't being used.
2020-08-11 16:05:00 -07:00
Simon Willison 2955e7ea51
One last update of the new tagline 2020-08-09 09:40:17 -07:00
dependabot-preview[bot] c5c12a797f
Update pytest requirement from <5.5.0,>=5.2.2 to >=5.2.2,<6.1.0 (#910)
Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/5.2.2...6.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-29 14:26:03 -07:00
abeyerpath 6be5654ffa
Exclude tests from package, properly this time
The `exclude` argument to `find_packages` needs an iterable of package
names.

Closes #456 - thanks, @abeyerpath!
2020-07-24 13:39:53 -07:00
Simon Willison 08b4928a75 asgi-csrf>=0.6, refs #835 2020-06-30 18:18:19 -07:00
dependabot-preview[bot] 1bb33dab49
Update pytest-asyncio requirement from <0.13,>=0.10 to >=0.10,<0.15 (#866)
Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.10.0...v0.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-24 11:50:55 -07:00
Simon Willison 57e812d5de ds_author cookie can now expire, closes #829
Refs https://github.com/simonw/datasette-auth-github/issues/62#issuecomment-642152076
2020-06-10 12:39:54 -07:00
Simon Willison 9c563d6aed Bump asgi-csrf to 0.5.1 for a bug fix
Refs https://github.com/simonw/asgi-csrf/issues/10
2020-06-05 17:15:52 -07:00
Simon Willison 84a9c4ff75
CSRF protection (#798)
Closes #793.

* Rename RequestParameters to MultiParams, refs #799
* Allow tuples as well as lists in MultiParams, refs #799
* Use csrftokens when running tests, refs #799
* Use new csrftoken() function, refs https://github.com/simonw/asgi-csrf/issues/7
* Check for Vary: Cookie hedaer, refs https://github.com/simonw/asgi-csrf/issues/8
2020-06-05 12:05:57 -07:00
Simon Willison fa27e44fe0 datasette.sign() and datasette.unsign() methods, refs #785 2020-05-31 18:16:42 -07:00
Simon Willison fc24edc153
Added project_urls, closes #764 2020-05-11 11:28:53 -07:00
dependabot-preview[bot] b314e088c5
Update pytest-asyncio requirement from ~=0.10.0 to >=0.10,<0.13 (#753)
Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.10.0...v0.12.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-04 10:40:48 -07:00
dependabot-preview[bot] 707fe03994
Update beautifulsoup4 requirement from ~=4.8.1 to >=4.8.1,<4.10.0 (#720)
Updates the requirements on [beautifulsoup4](http://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-04 10:14:46 -07:00
dependabot-preview[bot] c91fb9e3d4
Update pytest requirement from ~=5.2.2 to >=5.2.2,<5.5.0 (#721)
Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/5.2.2...5.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-04 10:13:41 -07:00
dependabot-preview[bot] aa064de3f4
Update jinja2 requirement from ~=2.10.3 to >=2.10.3,<2.12.0 (#722)
Updates the requirements on [jinja2](https://github.com/pallets/jinja) to permit the latest version.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/2.10.3...2.11.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-04 10:13:15 -07:00
dependabot-preview[bot] 109c5a430d
Update janus requirement from ~=0.4.0 to >=0.4,<0.6 (#734)
Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.
- [Release notes](https://github.com/aio-libs/janus/releases)
- [Changelog](https://github.com/aio-libs/janus/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/janus/compare/v0.4.0...v0.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-04 09:48:03 -07:00
dependabot-preview[bot] e232f77055
Update mergedeep requirement from ~=1.1.1 to >=1.1.1,<1.4.0 (#728)
Updates the requirements on [mergedeep](https://github.com/clarketm/mergedeep) to permit the latest version.
- [Release notes](https://github.com/clarketm/mergedeep/releases)
- [Commits](https://github.com/clarketm/mergedeep/compare/v1.1.1...v1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-04 09:45:49 -07:00
dependabot-preview[bot] 985e59493e
Update aiofiles requirement from ~=0.4.0 to >=0.4,<0.6 (#725)
Refs #754

Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.
- [Release notes](https://github.com/Tinche/aiofiles/releases)
- [Commits](https://github.com/Tinche/aiofiles/compare/v0.4.0...v0.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-04 09:17:48 -07:00
Simon Willison d349d57cdf Smarter merging of metadata and extra_metadata, closes #724 2020-04-10 11:34:09 -07:00
Simon Willison 6717c719dd
--metadata accepts YAML as well as JSON - closes #713 2020-04-02 12:30:53 -07:00
Simon Willison e1a817411a Bump to click 7.1.1 to fix flaky tests 2020-03-21 18:47:51 -07:00
Simon Willison a093c5f79f
.execute_write() and .execute_write_fn() methods on Database (#683)
Closes #682.
2020-02-24 20:45:07 -08:00
Simon Willison 9c3f0b73de Bump to uvicorn 0.11 2019-12-22 15:33:04 +00:00
Simon Willison 7f89928062 Removed code that conditionally installs black
Since we no longer support Python 3.5 we don't need this any more.
2019-11-11 21:33:51 -08:00
Simon Willison cf7776d36f
Support Python 3.8, stop supporting Python 3.5 (#627)
* Upgrade to uvicorn 0.10.4
* Drop support for Python 3.5
* Bump all dependencies to latest releases
* Update docs to reflect we no longer support 3.5
* Removed code that skipped black unit test on 3.5

Closes #622
2019-11-11 21:09:11 -08:00
Simon Willison 42ee3e16a9
Bump pint to 0.9 (#624)
This fixes 2 deprecation warnings in Python 3.8 - refs #623 #622
2019-11-10 20:19:01 -08:00
Simon Willison 5dd4d2b2d3
Update to latest black (#609) 2019-10-30 11:49:01 -07:00
Simon Willison d224ee2c98
Bump to uvicorn 0.8.4 (#559)
https://github.com/encode/uvicorn/commits/0.8.4

Query strings will now be included in log files: https://github.com/encode/uvicorn/pull/384
2019-07-13 15:34:57 -07:00
Simon Willison f0d32da0a9
Switch to ~= dependencies, closes #532 (#536)
* Switch to ~= dependencies, closes #532
* Bump click and click-default-group
* imp. is deprecated, use types.ModuleType instead - thanks https://stackoverflow.com/a/32175781
* Upgrade to pytest 5
2019-07-02 21:32:55 -07:00
Simon Willison 9e97b725f1 pip install -e .[docs] for docs dependencies 2019-06-25 05:08:04 -07:00
Simon Willison 6341f8cbc7 Better coverage of sqlite-utils in FTS docs, closes #525 2019-06-24 09:28:42 -07:00
Simon Willison ba8db9679f
Port Datasette from Sanic to ASGI + Uvicorn (#518)
Datasette now uses ASGI internally, and no longer depends on Sanic.

It now uses Uvicorn as the underlying HTTP server.

This was thirteen months in the making... for full details see the issue:

https://github.com/simonw/datasette/issues/272

And for a full sequence of commits plus commentary, see the pull request:

https://github.com/simonw/datasette/pull/518
2019-06-23 20:13:09 -07:00
Simon Willison 5e8fbf7f6f
Upgrade pytest to 4.6.1, pluggy to 0.12.0 (#497) 2019-06-02 19:06:26 -07:00
Simon Willison 48759d3b35 New setup.py description 2019-05-19 14:57:47 -07:00
Veit Heller 9f8d9fe262 setup: add tests to package exclusion (#458) 2019-05-09 18:54:50 -07:00
Simon Willison 35d6ee2790
Apply black to everything, enforce via unit tests (#449)
I've run the black code formatting tool against everything:

    black tests datasette setup.py

I also added a new unit test, in tests/test_black.py, which will fail if the code does not
conform to black's exacting standards.

This unit test only runs on Python 3.6 or higher, because black itself doesn't run on 3.5.
2019-05-03 22:15:14 -04:00
Simon Willison 9cd3b44277
Upgrade to Jinja2==2.10.1 (#426) 2019-04-10 16:13:30 -07:00
Simon Willison 0209a0a344 table_exists() now uses async SQL, refs #420 2019-03-31 11:02:22 -07:00
Simon Willison b3e7393326 Allow more recent versions of Click
Closes #414
2019-03-14 21:41:43 -07:00
Simon Willison c4c970f3c9 Bump aiohttp to 3.5.3 to fix a warning 2019-01-10 16:47:15 -08:00
Simon Willison 84d7890b63
Upgrade pytest to 4.0.2 2018-12-16 13:18:55 -08:00
Simon Willison c2c03f8e7b
Compatible with Python 3.7 2018-11-04 22:40:03 -08:00
Simon Willison e1db8194e8
Bump versions of pytest, pluggy and beautifulsoup4 (#358) 2018-08-07 18:11:12 -07:00
Simon Willison 31a5d8fa77 Bump aiohttp to fix compatibility with Python 3.7
Tests failed here: https://travis-ci.org/simonw/datasette/jobs/403223333
2018-07-12 11:07:37 -07:00
Simon Willison 47e689a89b
Speed up Travis by reusing pip wheel cache across builds (#324)
* Cache pip wheels between runs in Travis, refs #323
* Run pytest manually - "python setup.py test" appeared to still download a bunch of stuff: https://travis-ci.org/simonw/datasette/jobs/395306188

* Use extras_require so pip can install test dependencies: https://github.com/pypa/pip/issues/1197#issuecomment-228939212
2018-06-23 18:03:46 -07:00
Simon Willison 969771770f
Upgrade pytest to 3.6.0
https://github.com/pytest-dev/pytest/issues/1875 made it impossible to declare
a function as a fixture multiple times, which we were doing across different
modules. The fix was to move our @pytest.fixture calls into decorators in the
tests/fixtures.py module.
2018-05-31 06:42:37 -07:00
Robert Gieseke a113c28ea1 Add version number support with Versioneer
Repo:
https://github.com/warner/python-versioneer

Versioneer Licence:
Public Domain (CC0-1.0)

Closes #273
2018-05-22 12:35:21 -07:00
Simon Willison 1f384e662b
Updated PyPI classifiers 2018-04-17 17:30:46 -07:00
Simon Willison 92396ae5ba
Better fix for setup.py version 2018-04-15 21:38:04 -07:00
Simon Willison 33c7c53ff8
Start of the plugin system, based on pluggy (#210)
Uses https://pluggy.readthedocs.io/ originally created for the py.test project

We're starting with two plugin hooks:

prepare_connection(conn)

This is called when a new SQLite connection is created. It can be used to register custom SQL functions.

prepare_jinja2_environment(env)

This is called with the Jinja2 environment. It can be used to register custom template tags and filters.

An example plugin which uses these two hooks can be found at https://github.com/simonw/datasette-plugin-demos or installed using `pip install datasette-plugin-demos`

Refs #14
2018-04-15 17:56:15 -07:00
Russ Garrett ec6abc81e4 Initial units support
Add support for specifying units for a column in metadata.json and
rendering them on display using
[pint](https://pint.readthedocs.io/en/latest/).

ref #203
2018-04-13 20:32:53 -07:00
Simon Willison 6e16ed2a63
Removed pathlib dependency (incompatible with Python 3.5) 2018-04-13 11:22:15 -07:00
Simon Willison ad6142b67c
long_description in markdown for the new PyPI 2018-04-13 09:04:18 -07:00
Simon Willison 7a7e4b2ed8
Started unit tests for row/table HTML pages
Refs #167

Thanks to the new tests, spotted and fixed a bug where pages that were
supposed to have 100 things on them were actually displaying 101.
2017-12-09 15:32:54 -08:00
Simon Willison 446f4b8322
Upgrade to Sanic 0.7.0 (#168)
https://github.com/channelcat/sanic/releases/tag/0.7.0
2017-12-08 19:00:33 -08:00
Simon Willison ffa77f62b4
Removed dependency on sanic-jinja2
I wasn't using any of the functionality it adds on top of raw Jinja2.

Refs #12 and #153
2017-11-30 07:51:40 -08:00
Simon Willison f96e55bce5 Fix pytest version conflict
https://travis-ci.org/simonw/datasette/jobs/305929426

    pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), 
    Requirement.parse('pytest==3.2.3'))
2017-11-22 12:17:51 -08:00
Simon Willison b9af49be6c
Fix case for Sanic dependency
On PyPI it has a capital letter: https://pypi.python.org/pypi/Sanic

I think this is why the list of "Requires Distributions" on https://pypi.python.org/pypi/datasette links to all of the other dependencies but does not link to Sanic.
2017-11-17 05:26:05 -08:00
Simon Willison 228bce83a3 Added __version__, bumped it to 0.12
Closes #108
2017-11-16 07:20:54 -08:00
Simon Willison 9f47b6e4d8 Pin to specific Jinja version
Closes #100
2017-11-15 16:14:07 -08:00
Simon Willison b0f3d4e375 Version 0.11 2017-11-13 17:48:22 -08:00
Simon Willison 5928c11ee7 Version 0.10 2017-11-13 16:45:23 -08:00
Simon Willison d75f423b6f Release 0.9 2017-11-13 14:00:53 -08:00
Simon Willison fe279ab7b4 v0.8 - added PyPI metadata, ready to ship 2017-11-13 13:17:34 -08:00
Simon Willison 6b3b05b6db Released 0.7 2017-11-13 10:42:30 -08:00
Simon Willison 3ef35ca8b4 serve and publish commands now take a --metadata option
If provided, the --metadata option is the path to a JSON file containing
metadata that should be displayed alongside the dataset.

    datasette /tmp/fivethirtyeight.db --metadata /tmp/metadata.json

Currently that metadata format looks like this:

    {
        "title": "Five Thirty Eight",
        "license": "CC Attribution 4.0 License",
        "license_url": "http://creativecommons.org/licenses/by/4.0/",
        "source": "fivethirtyeight/data on GitHub",
        "source_url": "https://github.com/fivethirtyeight/data"
    }

If provided, this will be used by the index template and to populate the
common footer.

The publish command also accepts this argument, and will package any provided
metadata up and include it with the resulting Docker container.

    datasette publish --metadata /tmp/metadata.json /tmp/fivethirtyeight.db

Closes #68
2017-11-13 07:20:02 -08:00
Simon Willison 2bbe9ca34a Support OPTIONS requests for CORS 2017-11-12 18:11:52 -08:00
Simon Willison 26370b14d8 Handle table names with slashes in them
e.g. https://datasette-wdlexdiaoz.now.sh/fivethirtyeight-75d605c/bob-ross%2Felements-by-episode.csv?CABIN=1&BUSHES=1&CLOUDS=1
2017-11-12 15:17:00 -08:00
Simon Willison 40a563ebac Reworked metadata building options
Building metadata is now optional. If you want to do it, do this:

    datasette build *.db --metadata=metadata.json

Then when you run the server you can tell it to read from metadata:

    datasette serve *.db --metadata=metadata.json

The Dockerfile generated by datasette publish now uses this mechanism.

Closes #60
2017-11-11 12:11:51 -08:00
Simon Willison 407795b612 Initial unit tests against our Sanic app
Refs #50

I had to disable the build metadata function to get these tests to work
sensibly. I need to completely rethink how that mechanism works.
2017-11-11 09:47:59 -08:00
Simon Willison e7e50875d3 Renamed to 'datasette' 2017-11-10 10:38:35 -08:00
Simon Willison abb591d832 Added --reload argument to 'immutabase serve' command
Uses hupper to restart the server when the code changes. Useful for development.

Depends on https://pypi.python.org/pypi/hupper
2017-11-09 06:14:26 -08:00
Simon Willison 25c241fa5a Renamed project to immutabase 2017-11-05 18:32:13 -08:00
Simon Willison 0ac8bbce2e Default subcommand is now serve
Using click-default-group: https://github.com/click-contrib/click-default-group

Also removed requirements.txt in favour of setup.py
2017-11-04 16:53:50 -07:00
Simon Willison be768f26d0 python setup.py test now runs the tests 2017-11-04 16:40:27 -07:00
Simon Willison 1592fd0419 Started work on cli, which also meant adding setup.py
I'm using click, and click recommends using a setup.py - so I've added one of
those. I also refactored code into a new datasite package. It's not quite
deploying to now properly at the moment though - I seem to have messed up the
path handling a bit.

Also snuck in a new template for the "Row" view.

Refs #40
2017-10-27 00:08:24 -07:00