summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 13:54:29 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 13:54:29 +0000
commitc7bda11e6b58d987fe26170bcac57d2a309e6674 (patch)
treed567f1166a6c0e74c1bf82a840bd503c049a58a4
parente561f76b96c38643490ba3e1f76a1ea335593270 (diff)
automatic import of python-flask-seederopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-flask-seeder.spec523
-rw-r--r--sources1
3 files changed, 525 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..0e5a822 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/Flask-Seeder-1.2.0.tar.gz
diff --git a/python-flask-seeder.spec b/python-flask-seeder.spec
new file mode 100644
index 0000000..4513601
--- /dev/null
+++ b/python-flask-seeder.spec
@@ -0,0 +1,523 @@
+%global _empty_manifest_terminate_build 0
+Name: python-Flask-Seeder
+Version: 1.2.0
+Release: 1
+Summary: Flask extension to seed database through scripts
+License: MIT
+URL: https://github.com/diddi-/flask-seeder
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/1b/cf/d6167af60d6222d2898dca238a787ce47ce22a8afce41e5f1cf1023a31c3/Flask-Seeder-1.2.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-Flask
+
+%description
+# Flask-Seeder
+[![Build Status](https://travis-ci.org/diddi-/flask-seeder.svg?branch=master)](https://travis-ci.org/diddi-/flask-seeder)
+[![Coverage Status](https://coveralls.io/repos/github/diddi-/flask-seeder/badge.svg?branch=master)](https://coveralls.io/github/diddi-/flask-seeder?branch=master)
+
+Flask-Seeder is a Flask extension to help with seeding database with initial data, for example when deploying an application for the first time.
+
+This extensions primary focus is to help populating data once, for example in a demo application where the database might get wiped over and over but you still want users to have some basic data to play around with.
+
+
+# Installation
+
+```
+pip install Flask-Seeder
+```
+This will install the Flask-Seeder extension and add a `flask seed` subcommand, check it out to see what arguments are supported!
+
+# Seeders
+Flask-Seeder provides a base class `Seeder` that holds a database handle.
+By subclassing `Seeder` and implementing a `run()` method you get access to the database handle object and can start seeding the database with data.
+
+All seeders must be somewhere in the `seeds/` directory and inherit from `Seeder` or else they won't be detected.
+
+When all seeders have completed (successfully or not), Flask-Seeder will by default commit all changes to the database. This behaviour can be overridden with `--no-commit` or setting environment variable `FLASK_SEEDER_AUTOCOMMIT=0`.
+
+## Run Order
+
+When splitting seeders across multiple classes and files, order of operations is determined by two factors.
+First the seeders are grouped by `priority` (lower priority will be run first), all seeders with the same priority
+are then ordered by class name.
+
+See example below for setting priority on a seeder.
+
+```python
+from flask_seeder import Seeder
+
+class DemoSeeder(Seeder):
+ def __init__(self, db=None):
+ super().__init__(db=db)
+ self.priority = 10
+
+ def run(self):
+ ...
+```
+
+# Faker and Generators
+Flask-Seeder provides a `Faker` class that controls the creation of fake objects, based on real models. By telling `Faker` how to create the objects, you can easily create many different unique objects to help when seeding the database.
+
+There are different generators that help generate values for the fake objects.
+Currently supported generators are:
+
+* Integer: Create a random integer between two values
+* UUID: Create a random UUID
+* Sequence: Create integers in sequence if called multiple times
+* Name: Create a random name from a list `data/names/names.txt`
+* Email: Create a random email, a combination of the random name generator and a domain from `data/domains/domains.txt`
+* String: String generation from a pattern
+
+Feel free to roll your own generator by subclassing `Generator` and implement a `generate()` method that return the generated value.
+
+## String generator pattern
+The `String` generator takes a pattern and produces a string that matches the pattern.
+Currently the generator pattern is very simple and supports only a handful of operations.
+
+| Pattern | Produces | Description | Example |
+| --| -- | -- | -- |
+| [abc] | String character | Randomly select one of the provided characters | `b` |
+| [a-k] | String character | Randomly select one character from a range | `i` |
+| \c | String character | Randomly select any alpha character (a-z, A-Z) | `B` |
+| (one\|two) | String group | Like `[abc]` but works for strings, not just single characters | `one` |
+| \d | Digit | Randomly select a single digit (0-9) | `8` |
+| {x} | Repeater | Repeat the previous pattern `x` times | `\d{5}` |
+| {m,n} | Repeater | Repeat the previous pattern `x` times where `x` is anywhere between `m` and `n` | `[0-9]{2,8}` |
+| abc | String literal | No processing, returned as is | `abc` |
+
+Patterns can also be combined to produce more complex strings.
+```
+# Produces something like: abc5586oz
+abc[5-9]{4}\c[xyz]
+```
+
+# Example usage
+Examples show only relevant snippets of code
+
+**app.py:**
+```python
+from flask import Flask
+from flask_sqlalchemy import SQLAlchemy
+from flask_seeder import FlaskSeeder
+
+def create_app():
+ app = Flask(__name__)
+
+ db = SQLAlchemy()
+ db.init_app(app)
+
+ seeder = FlaskSeeder()
+ seeder.init_app(app, db)
+
+ return app
+```
+
+**seeds/demo.py:**
+```python
+from flask_seeder import Seeder, Faker, generator
+
+# SQLAlchemy database model
+class User(Base):
+ def __init__(self, id_num=None, name=None, age=None):
+ self.id_num = id_num
+ self.name = name
+ self.age = age
+
+ def __str__(self):
+ return "ID=%d, Name=%s, Age=%d" % (self.id_num, self.name, self.age)
+
+# All seeders inherit from Seeder
+class DemoSeeder(Seeder):
+
+ # run() will be called by Flask-Seeder
+ def run(self):
+ # Create a new Faker and tell it how to create User objects
+ faker = Faker(
+ cls=User,
+ init={
+ "id_num": generator.Sequence(),
+ "name": generator.Name(),
+ "age": generator.Integer(start=20, end=100)
+ }
+ )
+
+ # Create 5 users
+ for user in faker.create(5):
+ print("Adding user: %s" % user)
+ self.db.session.add(user)
+```
+
+***Shell***
+```bash
+$ flask seed run
+Running database seeders
+Adding user: ID=1, Name=Fancie, Age=76
+Adding user: ID=2, Name=Shela, Age=22
+Adding user: ID=3, Name=Jo, Age=33
+Adding user: ID=4, Name=Laureen, Age=54
+Adding user: ID=5, Name=Tandy, Age=66
+DemoSeeder... [OK]
+Committing to database!
+```
+
+
+
+
+%package -n python3-Flask-Seeder
+Summary: Flask extension to seed database through scripts
+Provides: python-Flask-Seeder
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-Flask-Seeder
+# Flask-Seeder
+[![Build Status](https://travis-ci.org/diddi-/flask-seeder.svg?branch=master)](https://travis-ci.org/diddi-/flask-seeder)
+[![Coverage Status](https://coveralls.io/repos/github/diddi-/flask-seeder/badge.svg?branch=master)](https://coveralls.io/github/diddi-/flask-seeder?branch=master)
+
+Flask-Seeder is a Flask extension to help with seeding database with initial data, for example when deploying an application for the first time.
+
+This extensions primary focus is to help populating data once, for example in a demo application where the database might get wiped over and over but you still want users to have some basic data to play around with.
+
+
+# Installation
+
+```
+pip install Flask-Seeder
+```
+This will install the Flask-Seeder extension and add a `flask seed` subcommand, check it out to see what arguments are supported!
+
+# Seeders
+Flask-Seeder provides a base class `Seeder` that holds a database handle.
+By subclassing `Seeder` and implementing a `run()` method you get access to the database handle object and can start seeding the database with data.
+
+All seeders must be somewhere in the `seeds/` directory and inherit from `Seeder` or else they won't be detected.
+
+When all seeders have completed (successfully or not), Flask-Seeder will by default commit all changes to the database. This behaviour can be overridden with `--no-commit` or setting environment variable `FLASK_SEEDER_AUTOCOMMIT=0`.
+
+## Run Order
+
+When splitting seeders across multiple classes and files, order of operations is determined by two factors.
+First the seeders are grouped by `priority` (lower priority will be run first), all seeders with the same priority
+are then ordered by class name.
+
+See example below for setting priority on a seeder.
+
+```python
+from flask_seeder import Seeder
+
+class DemoSeeder(Seeder):
+ def __init__(self, db=None):
+ super().__init__(db=db)
+ self.priority = 10
+
+ def run(self):
+ ...
+```
+
+# Faker and Generators
+Flask-Seeder provides a `Faker` class that controls the creation of fake objects, based on real models. By telling `Faker` how to create the objects, you can easily create many different unique objects to help when seeding the database.
+
+There are different generators that help generate values for the fake objects.
+Currently supported generators are:
+
+* Integer: Create a random integer between two values
+* UUID: Create a random UUID
+* Sequence: Create integers in sequence if called multiple times
+* Name: Create a random name from a list `data/names/names.txt`
+* Email: Create a random email, a combination of the random name generator and a domain from `data/domains/domains.txt`
+* String: String generation from a pattern
+
+Feel free to roll your own generator by subclassing `Generator` and implement a `generate()` method that return the generated value.
+
+## String generator pattern
+The `String` generator takes a pattern and produces a string that matches the pattern.
+Currently the generator pattern is very simple and supports only a handful of operations.
+
+| Pattern | Produces | Description | Example |
+| --| -- | -- | -- |
+| [abc] | String character | Randomly select one of the provided characters | `b` |
+| [a-k] | String character | Randomly select one character from a range | `i` |
+| \c | String character | Randomly select any alpha character (a-z, A-Z) | `B` |
+| (one\|two) | String group | Like `[abc]` but works for strings, not just single characters | `one` |
+| \d | Digit | Randomly select a single digit (0-9) | `8` |
+| {x} | Repeater | Repeat the previous pattern `x` times | `\d{5}` |
+| {m,n} | Repeater | Repeat the previous pattern `x` times where `x` is anywhere between `m` and `n` | `[0-9]{2,8}` |
+| abc | String literal | No processing, returned as is | `abc` |
+
+Patterns can also be combined to produce more complex strings.
+```
+# Produces something like: abc5586oz
+abc[5-9]{4}\c[xyz]
+```
+
+# Example usage
+Examples show only relevant snippets of code
+
+**app.py:**
+```python
+from flask import Flask
+from flask_sqlalchemy import SQLAlchemy
+from flask_seeder import FlaskSeeder
+
+def create_app():
+ app = Flask(__name__)
+
+ db = SQLAlchemy()
+ db.init_app(app)
+
+ seeder = FlaskSeeder()
+ seeder.init_app(app, db)
+
+ return app
+```
+
+**seeds/demo.py:**
+```python
+from flask_seeder import Seeder, Faker, generator
+
+# SQLAlchemy database model
+class User(Base):
+ def __init__(self, id_num=None, name=None, age=None):
+ self.id_num = id_num
+ self.name = name
+ self.age = age
+
+ def __str__(self):
+ return "ID=%d, Name=%s, Age=%d" % (self.id_num, self.name, self.age)
+
+# All seeders inherit from Seeder
+class DemoSeeder(Seeder):
+
+ # run() will be called by Flask-Seeder
+ def run(self):
+ # Create a new Faker and tell it how to create User objects
+ faker = Faker(
+ cls=User,
+ init={
+ "id_num": generator.Sequence(),
+ "name": generator.Name(),
+ "age": generator.Integer(start=20, end=100)
+ }
+ )
+
+ # Create 5 users
+ for user in faker.create(5):
+ print("Adding user: %s" % user)
+ self.db.session.add(user)
+```
+
+***Shell***
+```bash
+$ flask seed run
+Running database seeders
+Adding user: ID=1, Name=Fancie, Age=76
+Adding user: ID=2, Name=Shela, Age=22
+Adding user: ID=3, Name=Jo, Age=33
+Adding user: ID=4, Name=Laureen, Age=54
+Adding user: ID=5, Name=Tandy, Age=66
+DemoSeeder... [OK]
+Committing to database!
+```
+
+
+
+
+%package help
+Summary: Development documents and examples for Flask-Seeder
+Provides: python3-Flask-Seeder-doc
+%description help
+# Flask-Seeder
+[![Build Status](https://travis-ci.org/diddi-/flask-seeder.svg?branch=master)](https://travis-ci.org/diddi-/flask-seeder)
+[![Coverage Status](https://coveralls.io/repos/github/diddi-/flask-seeder/badge.svg?branch=master)](https://coveralls.io/github/diddi-/flask-seeder?branch=master)
+
+Flask-Seeder is a Flask extension to help with seeding database with initial data, for example when deploying an application for the first time.
+
+This extensions primary focus is to help populating data once, for example in a demo application where the database might get wiped over and over but you still want users to have some basic data to play around with.
+
+
+# Installation
+
+```
+pip install Flask-Seeder
+```
+This will install the Flask-Seeder extension and add a `flask seed` subcommand, check it out to see what arguments are supported!
+
+# Seeders
+Flask-Seeder provides a base class `Seeder` that holds a database handle.
+By subclassing `Seeder` and implementing a `run()` method you get access to the database handle object and can start seeding the database with data.
+
+All seeders must be somewhere in the `seeds/` directory and inherit from `Seeder` or else they won't be detected.
+
+When all seeders have completed (successfully or not), Flask-Seeder will by default commit all changes to the database. This behaviour can be overridden with `--no-commit` or setting environment variable `FLASK_SEEDER_AUTOCOMMIT=0`.
+
+## Run Order
+
+When splitting seeders across multiple classes and files, order of operations is determined by two factors.
+First the seeders are grouped by `priority` (lower priority will be run first), all seeders with the same priority
+are then ordered by class name.
+
+See example below for setting priority on a seeder.
+
+```python
+from flask_seeder import Seeder
+
+class DemoSeeder(Seeder):
+ def __init__(self, db=None):
+ super().__init__(db=db)
+ self.priority = 10
+
+ def run(self):
+ ...
+```
+
+# Faker and Generators
+Flask-Seeder provides a `Faker` class that controls the creation of fake objects, based on real models. By telling `Faker` how to create the objects, you can easily create many different unique objects to help when seeding the database.
+
+There are different generators that help generate values for the fake objects.
+Currently supported generators are:
+
+* Integer: Create a random integer between two values
+* UUID: Create a random UUID
+* Sequence: Create integers in sequence if called multiple times
+* Name: Create a random name from a list `data/names/names.txt`
+* Email: Create a random email, a combination of the random name generator and a domain from `data/domains/domains.txt`
+* String: String generation from a pattern
+
+Feel free to roll your own generator by subclassing `Generator` and implement a `generate()` method that return the generated value.
+
+## String generator pattern
+The `String` generator takes a pattern and produces a string that matches the pattern.
+Currently the generator pattern is very simple and supports only a handful of operations.
+
+| Pattern | Produces | Description | Example |
+| --| -- | -- | -- |
+| [abc] | String character | Randomly select one of the provided characters | `b` |
+| [a-k] | String character | Randomly select one character from a range | `i` |
+| \c | String character | Randomly select any alpha character (a-z, A-Z) | `B` |
+| (one\|two) | String group | Like `[abc]` but works for strings, not just single characters | `one` |
+| \d | Digit | Randomly select a single digit (0-9) | `8` |
+| {x} | Repeater | Repeat the previous pattern `x` times | `\d{5}` |
+| {m,n} | Repeater | Repeat the previous pattern `x` times where `x` is anywhere between `m` and `n` | `[0-9]{2,8}` |
+| abc | String literal | No processing, returned as is | `abc` |
+
+Patterns can also be combined to produce more complex strings.
+```
+# Produces something like: abc5586oz
+abc[5-9]{4}\c[xyz]
+```
+
+# Example usage
+Examples show only relevant snippets of code
+
+**app.py:**
+```python
+from flask import Flask
+from flask_sqlalchemy import SQLAlchemy
+from flask_seeder import FlaskSeeder
+
+def create_app():
+ app = Flask(__name__)
+
+ db = SQLAlchemy()
+ db.init_app(app)
+
+ seeder = FlaskSeeder()
+ seeder.init_app(app, db)
+
+ return app
+```
+
+**seeds/demo.py:**
+```python
+from flask_seeder import Seeder, Faker, generator
+
+# SQLAlchemy database model
+class User(Base):
+ def __init__(self, id_num=None, name=None, age=None):
+ self.id_num = id_num
+ self.name = name
+ self.age = age
+
+ def __str__(self):
+ return "ID=%d, Name=%s, Age=%d" % (self.id_num, self.name, self.age)
+
+# All seeders inherit from Seeder
+class DemoSeeder(Seeder):
+
+ # run() will be called by Flask-Seeder
+ def run(self):
+ # Create a new Faker and tell it how to create User objects
+ faker = Faker(
+ cls=User,
+ init={
+ "id_num": generator.Sequence(),
+ "name": generator.Name(),
+ "age": generator.Integer(start=20, end=100)
+ }
+ )
+
+ # Create 5 users
+ for user in faker.create(5):
+ print("Adding user: %s" % user)
+ self.db.session.add(user)
+```
+
+***Shell***
+```bash
+$ flask seed run
+Running database seeders
+Adding user: ID=1, Name=Fancie, Age=76
+Adding user: ID=2, Name=Shela, Age=22
+Adding user: ID=3, Name=Jo, Age=33
+Adding user: ID=4, Name=Laureen, Age=54
+Adding user: ID=5, Name=Tandy, Age=66
+DemoSeeder... [OK]
+Committing to database!
+```
+
+
+
+
+%prep
+%autosetup -n Flask-Seeder-1.2.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-Flask-Seeder -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..4d9d29e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+bd61c11560f5c618b88ca01ebda504f6 Flask-Seeder-1.2.0.tar.gz