asyncio REST API Resource database
Project description
Introduction
============
.. image:: https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat
:target: http://guillotina.readthedocs.io/en/latest/
.. image:: https://travis-ci.org/plone/guillotina.svg?branch=master
:target: https://travis-ci.org/plone/guillotina
.. image:: https://codecov.io/gh/plone/guillotina/branch/master/graph/badge.svg
:target: https://codecov.io/gh/plone/guillotina/branch/master
:alt: Test Coverage
.. image:: https://img.shields.io/pypi/pyversions/guillotina.svg
:target: https://pypi-hypernode.com/pypi/guillotina/
:alt: Python Versions
.. image:: https://img.shields.io/pypi/v/guillotina.svg
:target: https://pypi-hypernode.com/pypi/guillotina
.. image:: https://img.shields.io/pypi/l/guillotina.svg
:target: https://pypi-hypernode.com/pypi/guillotina/
:alt: License
.. image:: https://badges.gitter.im/plone/guillotina.png
:target: https://gitter.im/plone/guillotina
:alt: Chat
Please `read the detailed docs <http://guillotina.readthedocs.io/en/latest/>`_
This is the working project of the next generation Guillotina server based on asyncio.
Dependencies
------------
* python >= 3.6
* postgresql >= 9.6
Quickstart
----------
We use pip::
pip install guillotina
Run postgresql
--------------
If you don't have a postgresql server to play with, you can run one easily
with docker.
Download and start the docker container by running::
make run-postgres
Run the server
--------------
To run the server::
g
Then...
curl http://localhost:8080
Or, better yet, use postman to start playing with API.
You can also navigate in your Guillotina server with its built-in web admin interface by visiting http://localhost:8080/+admin/.
Getting started with development
--------------------------------
Using pip::
./bin/pip install requirements.txt
./bin/pip install -e .[test]
Run tests
---------
We're using pytest::
./bin/pytest guillotina
and for test coverage::
./bin/pytest --cov=guillotina guillotina/
With file watcher...
./bin/ptw guillotina --runner=./bin/py.test
To run tests with cockroach db::
USE_COCKROACH=true ./bin/pytest guillotina
Default
-------
Default root access can be done with AUTHORIZATION header : Basic root:root
Docker
------
You can also run Guillotina with Docker!
First, run postgresql::
docker run --rm \
-e POSTGRES_DB=guillotina \
-e POSTGRES_USER=guillotina \
-p 127.0.0.1:5432:5432 \
--name postgres \
postgres:9.6
Then, run guillotina::
docker run --rm -it \
--link=postgres -p 127.0.0.1:8080:8080 \
guillotina/guillotina:latest \
g -c '{"databases": [{"db": {"storage": "postgresql", "dsn": "postgres://guillotina:@postgres/guillotina"}}], "root_user": {"password": "root"}}'
This assumes you have a config.yaml in your current working directory
Chat
----
Join us to talk about Guillotina at https://gitter.im/plone/guillotina
4.1.9 (2018-09-17)
------------------
- Adding annotation support on registry object
[bloodbare]
- Fix IJSONToValue adapter for IPatchField
[masipcat]
4.1.8 (2018-09-14)
------------------
- Be able to override configuration values with `--override` parameter
[vangheem]
4.1.7 (2018-09-12)
------------------
- Provide more flexibility for traversal sub-routes
[vangheem]
- Make sure ApplicationRoot knows about the loop it is used with
[vangheem]
4.1.6 (2018-08-31)
------------------
- On PUT, completely delete existing existing behavior objects
[vangheem]
4.1.5 (2018-08-30)
------------------
- Allow PUT in CORS policy
[ebrehault]
- Update admin interface:
- Use PUT to edit
- Preserve path when logging in
[ebrehault]
4.1.4 (2018-08-29)
------------------
- Implement default PUT method to be able to replace content
[vangheem]
- Fix error on invalid CORS ch
[vangheem]
- Option to disable inheritance on role permission relation
[bloodbare]
- Add get_behavior utility
[vangheem]
- IBeforeFieldModified event to hook before setting a field
[bloodbare]
- Added PatchField for ints to be used as counters [lferran]
4.1.3 (2018-08-08)
------------------
- Split sharing function to be reusable
[bloodbare]
4.1.2 (2018-08-06)
------------------
- Binding fields to objecst on deserialize to make sure vocabulary is enabled
[bloodbare]
- Enabling uploading files with a JSON payload
[bloodbare]
4.1.1 (2018-07-30)
------------------
- Adding decorator for vocabulary definition
[bloodbare]
- Adding tests on cookiecutter
[bloodbare]
- Add 'Navigator' utility, that provides a path-based index to the already
loaded objects.
[cdevienne]
4.1.0 (2018-07-23)
------------------
- Various doc improvements including security section rewrite
[WnP]
- Allow DELETE with params on url.
[jordic]
- Add admin interface as static JS app on http://localhost:8080/+admin/
[mathilde-pellerin, ebrehault]
4.0.7 (2018-07-21)
------------------
- Improve and fix docs
[vangheem]
- Fix interface for layers
[bloodbare]
- Updating requirements for py3.7
[bloodbare]
4.0.6 (2018-07-20)
------------------
- Provide IIDGenerator interface to customize generating new ids
[bloodbare]
- Fix applying cors when errors on traversal
[bloodbare]
4.0.5 (2018-07-19)
------------------
- Fix run_app args when access_log_format is None
[vangheem]
4.0.4 (2018-07-19)
------------------
- Use guillotina response exceptions everywhere so we
use built-in CORS
- Serialize if a content is folderish
[bloodbare]
- Serialize the schema with the full behavior name
[bloodbare]
- Upgrade to aiohttp > 3 < 4.
Notable aiohttp changes:
- Response.write is now a coroutine
- Response.write should explicitly use write_eof
- Websockets send_str is now a coroutine
[vangheem]
- Dublin core should not be required
[bloodbare]
4.0.3 (2018-07-16)
------------------
- Allow patching registry with new shcema fields
4.0.2 (2018-06-22)
------------------
- Support for extra values on Field properties
[bloodbare]
- Don't fail on read-only pg
- Fix nested schema null value deserialization error
[vangheem]
- Fix use of AllowSingle with children overriding the same permission
[bloodbare]
4.0.1 (2018-06-07)
------------------
- Implement minimal passing mypy compatibility
[vangheem]
- Rename `BaseObject.__annotations__` to `BaseObject.__gannotations__` to prevent
namespace clashes with mypy and other things
[vangheem]
4.0.0 (2018-06-05)
------------------
- `guillotina.browser.Response` moved to `guillotina.response.Response`
- move `guillotina.browser.ErrorResponse` to `guillotina.response.ErrorResponse`
- `guillotina.browser.UnauthorizedResponse` removed
- `guillotina.response.Response` no longer supports wrapping aiohttp responses
- `guillotina.response.Response` can now be raised as an exception
- returned or raised aiohttp responses now bypass guillotina renderer framework
- raising any Response as an exception aborts current transaction
- remove `IFrameFormatsJson`
- remove `IRenderFormats`, `IRendered` is now a named adapter lookup
- remove `app_settings.renderers` setting. Use the lookups
- remove `IDownloadView`
- remove `TraversableDownloadService`
- remove `IForbiddenAttribute`
- remove `ISerializableException`
- remove `IForbidden`
- by default, provide an async queue utility
- move `guillotina.files.CloudFileField` to `guillotina.fields.CloudFileField`
- fix deserialization with BucketListField
- fix required field of PatchField
3.3.12 (2018-05-30)
-------------------
- Reindex security of group object even if we aren't going to reindex it's children
[vangheem]
- Refactor indexing so we can index security, provide `guillotina.catalog.index.index_object` function
[vangheem]
...
You are seeing a truncated changelog.
You can read the `changelog file <https://github.com/plone/guillotina/blob/master/CHANGELOG.rst>`_
for a complete list.
============
.. image:: https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat
:target: http://guillotina.readthedocs.io/en/latest/
.. image:: https://travis-ci.org/plone/guillotina.svg?branch=master
:target: https://travis-ci.org/plone/guillotina
.. image:: https://codecov.io/gh/plone/guillotina/branch/master/graph/badge.svg
:target: https://codecov.io/gh/plone/guillotina/branch/master
:alt: Test Coverage
.. image:: https://img.shields.io/pypi/pyversions/guillotina.svg
:target: https://pypi-hypernode.com/pypi/guillotina/
:alt: Python Versions
.. image:: https://img.shields.io/pypi/v/guillotina.svg
:target: https://pypi-hypernode.com/pypi/guillotina
.. image:: https://img.shields.io/pypi/l/guillotina.svg
:target: https://pypi-hypernode.com/pypi/guillotina/
:alt: License
.. image:: https://badges.gitter.im/plone/guillotina.png
:target: https://gitter.im/plone/guillotina
:alt: Chat
Please `read the detailed docs <http://guillotina.readthedocs.io/en/latest/>`_
This is the working project of the next generation Guillotina server based on asyncio.
Dependencies
------------
* python >= 3.6
* postgresql >= 9.6
Quickstart
----------
We use pip::
pip install guillotina
Run postgresql
--------------
If you don't have a postgresql server to play with, you can run one easily
with docker.
Download and start the docker container by running::
make run-postgres
Run the server
--------------
To run the server::
g
Then...
curl http://localhost:8080
Or, better yet, use postman to start playing with API.
You can also navigate in your Guillotina server with its built-in web admin interface by visiting http://localhost:8080/+admin/.
Getting started with development
--------------------------------
Using pip::
./bin/pip install requirements.txt
./bin/pip install -e .[test]
Run tests
---------
We're using pytest::
./bin/pytest guillotina
and for test coverage::
./bin/pytest --cov=guillotina guillotina/
With file watcher...
./bin/ptw guillotina --runner=./bin/py.test
To run tests with cockroach db::
USE_COCKROACH=true ./bin/pytest guillotina
Default
-------
Default root access can be done with AUTHORIZATION header : Basic root:root
Docker
------
You can also run Guillotina with Docker!
First, run postgresql::
docker run --rm \
-e POSTGRES_DB=guillotina \
-e POSTGRES_USER=guillotina \
-p 127.0.0.1:5432:5432 \
--name postgres \
postgres:9.6
Then, run guillotina::
docker run --rm -it \
--link=postgres -p 127.0.0.1:8080:8080 \
guillotina/guillotina:latest \
g -c '{"databases": [{"db": {"storage": "postgresql", "dsn": "postgres://guillotina:@postgres/guillotina"}}], "root_user": {"password": "root"}}'
This assumes you have a config.yaml in your current working directory
Chat
----
Join us to talk about Guillotina at https://gitter.im/plone/guillotina
4.1.9 (2018-09-17)
------------------
- Adding annotation support on registry object
[bloodbare]
- Fix IJSONToValue adapter for IPatchField
[masipcat]
4.1.8 (2018-09-14)
------------------
- Be able to override configuration values with `--override` parameter
[vangheem]
4.1.7 (2018-09-12)
------------------
- Provide more flexibility for traversal sub-routes
[vangheem]
- Make sure ApplicationRoot knows about the loop it is used with
[vangheem]
4.1.6 (2018-08-31)
------------------
- On PUT, completely delete existing existing behavior objects
[vangheem]
4.1.5 (2018-08-30)
------------------
- Allow PUT in CORS policy
[ebrehault]
- Update admin interface:
- Use PUT to edit
- Preserve path when logging in
[ebrehault]
4.1.4 (2018-08-29)
------------------
- Implement default PUT method to be able to replace content
[vangheem]
- Fix error on invalid CORS ch
[vangheem]
- Option to disable inheritance on role permission relation
[bloodbare]
- Add get_behavior utility
[vangheem]
- IBeforeFieldModified event to hook before setting a field
[bloodbare]
- Added PatchField for ints to be used as counters [lferran]
4.1.3 (2018-08-08)
------------------
- Split sharing function to be reusable
[bloodbare]
4.1.2 (2018-08-06)
------------------
- Binding fields to objecst on deserialize to make sure vocabulary is enabled
[bloodbare]
- Enabling uploading files with a JSON payload
[bloodbare]
4.1.1 (2018-07-30)
------------------
- Adding decorator for vocabulary definition
[bloodbare]
- Adding tests on cookiecutter
[bloodbare]
- Add 'Navigator' utility, that provides a path-based index to the already
loaded objects.
[cdevienne]
4.1.0 (2018-07-23)
------------------
- Various doc improvements including security section rewrite
[WnP]
- Allow DELETE with params on url.
[jordic]
- Add admin interface as static JS app on http://localhost:8080/+admin/
[mathilde-pellerin, ebrehault]
4.0.7 (2018-07-21)
------------------
- Improve and fix docs
[vangheem]
- Fix interface for layers
[bloodbare]
- Updating requirements for py3.7
[bloodbare]
4.0.6 (2018-07-20)
------------------
- Provide IIDGenerator interface to customize generating new ids
[bloodbare]
- Fix applying cors when errors on traversal
[bloodbare]
4.0.5 (2018-07-19)
------------------
- Fix run_app args when access_log_format is None
[vangheem]
4.0.4 (2018-07-19)
------------------
- Use guillotina response exceptions everywhere so we
use built-in CORS
- Serialize if a content is folderish
[bloodbare]
- Serialize the schema with the full behavior name
[bloodbare]
- Upgrade to aiohttp > 3 < 4.
Notable aiohttp changes:
- Response.write is now a coroutine
- Response.write should explicitly use write_eof
- Websockets send_str is now a coroutine
[vangheem]
- Dublin core should not be required
[bloodbare]
4.0.3 (2018-07-16)
------------------
- Allow patching registry with new shcema fields
4.0.2 (2018-06-22)
------------------
- Support for extra values on Field properties
[bloodbare]
- Don't fail on read-only pg
- Fix nested schema null value deserialization error
[vangheem]
- Fix use of AllowSingle with children overriding the same permission
[bloodbare]
4.0.1 (2018-06-07)
------------------
- Implement minimal passing mypy compatibility
[vangheem]
- Rename `BaseObject.__annotations__` to `BaseObject.__gannotations__` to prevent
namespace clashes with mypy and other things
[vangheem]
4.0.0 (2018-06-05)
------------------
- `guillotina.browser.Response` moved to `guillotina.response.Response`
- move `guillotina.browser.ErrorResponse` to `guillotina.response.ErrorResponse`
- `guillotina.browser.UnauthorizedResponse` removed
- `guillotina.response.Response` no longer supports wrapping aiohttp responses
- `guillotina.response.Response` can now be raised as an exception
- returned or raised aiohttp responses now bypass guillotina renderer framework
- raising any Response as an exception aborts current transaction
- remove `IFrameFormatsJson`
- remove `IRenderFormats`, `IRendered` is now a named adapter lookup
- remove `app_settings.renderers` setting. Use the lookups
- remove `IDownloadView`
- remove `TraversableDownloadService`
- remove `IForbiddenAttribute`
- remove `ISerializableException`
- remove `IForbidden`
- by default, provide an async queue utility
- move `guillotina.files.CloudFileField` to `guillotina.fields.CloudFileField`
- fix deserialization with BucketListField
- fix required field of PatchField
3.3.12 (2018-05-30)
-------------------
- Reindex security of group object even if we aren't going to reindex it's children
[vangheem]
- Refactor indexing so we can index security, provide `guillotina.catalog.index.index_object` function
[vangheem]
...
You are seeing a truncated changelog.
You can read the `changelog file <https://github.com/plone/guillotina/blob/master/CHANGELOG.rst>`_
for a complete list.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
guillotina-4.1.9.tar.gz
(5.7 MB
view hashes)
Built Distribution
Close
Hashes for guillotina-4.1.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee0e2e0d06b06b82f1b212dde4dea42f3d6be9d4d60f1ffa0c765a34a1ab3571 |
|
MD5 | 5b56dc620224fc71ff34a3e4da3cbdcd |
|
BLAKE2b-256 | 1073da789998c7f9b108a6d77c887ecda5180dbd1858b1d7343d54c0a7763096 |