Skip to main content
# flask-restive-identifiers
Flask-RESTive extension to work with identifiers.

[![Build Status](https://travis-ci.org/left-join/flask-restive-identifiers.svg?branch=master)](https://travis-ci.org/left-join/flask-restive-identifiers)
[![Coverage Status](https://coveralls.io/repos/github/left-join/flask-restive-identifiers/badge.svg?branch=master)](https://coveralls.io/github/left-join/flask-restive-identifiers?branch=master)
[![Code Health](https://landscape.io/github/left-join/flask-restive-identifiers/master/landscape.svg?style=flat)](https://landscape.io/github/left-join/flask-restive-identifiers/master)
[![PyPI Version](https://img.shields.io/pypi/v/Flask-RESTive-Identifiers.svg)](https://pypi.python.org/pypi/Flask-RESTive-Identifiers)


## Installation
```bash
pip install flask-restive-identifiers
```

## How to use

The library based on postgresql sequences, so you should to configure your
application to use postgresql first:
```python
from flask import Flask

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://user:password@localhost:5432/database'
```

The library provides function generate_id that can be used as is:
```python
>>> from flask_restive_identifiers import generate_id

>>> generate_id(namespace='test')
>>> 1
>>> generate_id(namespace='test')
>>> 2
>>> generate_id(namespace='test')
>>> 3
>>> generate_id(namespace='new_space')
>>> 1
```

The library provides schema that automatically generates auto-increment id.

The sequence name can be changed with meta attribute identifier_namespace:
```python
from flask_restive import fields
from flask_restive_identifiers import IntegerIDSchema


class ScientistSchema(IntegerIDSchema):
first_name = fields.String(required=True)
last_name = fields.String(required=True)

class Meta(IntegerIDSchema.Meta):
identifier_namespace = 'scientists'

```

Each loading without id generates new auto-increment id:
```python
>>> schema = ScientistSchema()
>>> data, errors = schema.load({'first_name': 'Albert', 'last_name': 'Einstein'})
>>> data.id
1
>>> data, errors = schema.load({'first_name': 'Nicolaus', 'last_name': 'Copernicus'})
>>> data.id
2
```


Release files for Flask-RESTive-Identifiers 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Flask-RESTive-Identifiers 0.0.3
File Size Uploaded
Flask-RESTive-Identifiers-0.0.3.tar.gz 3.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Flask-RESTive-Identifiers 0.0.3
File Interpreter ABI Platform
Flask_RESTive_Identifiers-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 9.8 kB

Release files / Flask-RESTive-Identifiers-0.0.3.tar.gz

Download URL Flask-RESTive-Identifiers-0.0.3.tar.gz
Size 3.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f8dd11d70327b1f0371c1672eda10d5acb0ce815f5a47deb32a90ac38521d8ad
BLAKE2b-256 checksum
How to use checksums
24fba688b769938896374e445a4ceb3e0950ccacf79cf34133eca917b1b726cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / Flask_RESTive_Identifiers-0.0.3-py3-none-any.whl

Download URL Flask_RESTive_Identifiers-0.0.3-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac1ab573c9d37a940bece113e0eb84b1f3785b1b9c161cde6abf9cb87ebeaf89
BLAKE2b-256 checksum
How to use checksums
8fe9a23583336cd3e2ecc79911a14cb9e34fe7f5cbdbc42ee8335b2c1926b958
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

1 release file

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page