%global _empty_manifest_terminate_build 0
Name: python-nycdb
Version: 0.2.8
Release: 1
Summary: database of nyc housing data
License: AGPL-3.0-or-later
URL: https://github.com/nycdb/nycdb
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2b/19/10bd8cfee6d53d0a97420d85015bd7a93336f892c176f37e7a1b02bb9904/nycdb-0.2.8.tar.gz
BuildArch: noarch
Requires: python3-PyYAML
Requires: python3-requests
Requires: python3-psycopg2
Requires: python3-tqdm
Requires: python3-openpyxl
Requires: python3-xlrd
%description
# NYCDB
**a tool for building a database of NYC housing data**
This is a Python library and cli tool for installing, updating and managing NYCDB, a postgres database of NYC Housing Data.
For more background information on this project and links to download copies of full database dump visit: https://github.com/nycdb/nycdb. We use the term **nycdb** to refer to both the python software and the running copy of the postgres database.
## Using the cli tool
You will need python 3.6+ and Postgres. The latest version can be installed from pypi with pip: `python3 -m pip install nycdb`
If the installation is successful, you can view a summary of the tool's options by running `nycdb --help`
To print a list of datasets: ` nycdb --list-datasets`
`nycdb`'s main job is to download datasets and import them into postgres. It does not manage the database for you. You can use the flags `-U/--user`, `-D/--database`, `-P/--password`, and `-H/--host` to instruct nycdb to connect to the correct database. See `nycdb --help` for the defaults.
Example: downloading, loading, and verifying the dataset **hpd_violations**:
``` sh
nycdb --download hpd_violations
nycdb --load hpd_violations
nycdb --verify hpd_violations
```
You can also verify all datasets: ` nycdb --verify-all `
By default the downloaded data files are is stored in `./data`. Use `--root-dir` to change the location of the data directory.
You can export a `.sql` file for any dataset by using the `--dump` command
## Development
There are two development workflows: one using python virtual environments and one using docker.
### Using docker and docker-compose
To get started all you have to do is run `docker-compose up`.
On the first run Docker will take longer to downloads and build the images. It
will start a Postgres server on port 5432 of your local machineYou can also press
CTRL-C at any point to stop the server.
In a separate terminal, you will be able to now use the nycdb cli: `docker-compose run nycdb --help`
You can also open a python3 shell: `docker-compose run --entrypoint=python3 nycdb` or run the test suit `docker-compose run --entrypoint="pytest tests" nycdb`
You may also develop on nycdb itself:
* Any changes you make to the tool's source code will automatically be reflected
in future invocations of `nycdb` and the test suite.
* The postgres database server is forwarded to localhost:5432 which you can connect to via a desktop client if you like.
* If you don't have a desktop Postgres client, you can always run
`nycdb --dbshell` to interactively inspect the database with [psql](http://postgresguide.com/utilities/psql.html).
To update the database after adding new packages or dev dependencies, just run `docker-compose up --build --force-recreate --no-deps`. This command will take a bit longer than the regular `docker-compose up` command, but will reinstall packages within the docker container without removing any downloaded files or database data from the docker database.
To stop the database run `docker-compose down`. The downloaded files and database data are stored in docker volumes and are not automatically removed.
However, if you ever want to wipe the database, run `docker-compose down -v`.
### Python3 virtual environments
If you have postgres installed separately, you can use this alternative method without docker:
Setup and active a virtual environment:
``` sh
python3 -m venv venv
source venv/bin/activate
```
Install nycdb: ` pip install -e ./src`
As long as the virtual environment is activated, you can use `nycdb` directly in your shell.
### Adding New Datasets
See the [guide here](ADDING_NEW_DATASETS.md) for the steps to add a new dataset
%package -n python3-nycdb
Summary: database of nyc housing data
Provides: python-nycdb
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-nycdb
# NYCDB
**a tool for building a database of NYC housing data**
This is a Python library and cli tool for installing, updating and managing NYCDB, a postgres database of NYC Housing Data.
For more background information on this project and links to download copies of full database dump visit: https://github.com/nycdb/nycdb. We use the term **nycdb** to refer to both the python software and the running copy of the postgres database.
## Using the cli tool
You will need python 3.6+ and Postgres. The latest version can be installed from pypi with pip: `python3 -m pip install nycdb`
If the installation is successful, you can view a summary of the tool's options by running `nycdb --help`
To print a list of datasets: ` nycdb --list-datasets`
`nycdb`'s main job is to download datasets and import them into postgres. It does not manage the database for you. You can use the flags `-U/--user`, `-D/--database`, `-P/--password`, and `-H/--host` to instruct nycdb to connect to the correct database. See `nycdb --help` for the defaults.
Example: downloading, loading, and verifying the dataset **hpd_violations**:
``` sh
nycdb --download hpd_violations
nycdb --load hpd_violations
nycdb --verify hpd_violations
```
You can also verify all datasets: ` nycdb --verify-all `
By default the downloaded data files are is stored in `./data`. Use `--root-dir` to change the location of the data directory.
You can export a `.sql` file for any dataset by using the `--dump` command
## Development
There are two development workflows: one using python virtual environments and one using docker.
### Using docker and docker-compose
To get started all you have to do is run `docker-compose up`.
On the first run Docker will take longer to downloads and build the images. It
will start a Postgres server on port 5432 of your local machineYou can also press
CTRL-C at any point to stop the server.
In a separate terminal, you will be able to now use the nycdb cli: `docker-compose run nycdb --help`
You can also open a python3 shell: `docker-compose run --entrypoint=python3 nycdb` or run the test suit `docker-compose run --entrypoint="pytest tests" nycdb`
You may also develop on nycdb itself:
* Any changes you make to the tool's source code will automatically be reflected
in future invocations of `nycdb` and the test suite.
* The postgres database server is forwarded to localhost:5432 which you can connect to via a desktop client if you like.
* If you don't have a desktop Postgres client, you can always run
`nycdb --dbshell` to interactively inspect the database with [psql](http://postgresguide.com/utilities/psql.html).
To update the database after adding new packages or dev dependencies, just run `docker-compose up --build --force-recreate --no-deps`. This command will take a bit longer than the regular `docker-compose up` command, but will reinstall packages within the docker container without removing any downloaded files or database data from the docker database.
To stop the database run `docker-compose down`. The downloaded files and database data are stored in docker volumes and are not automatically removed.
However, if you ever want to wipe the database, run `docker-compose down -v`.
### Python3 virtual environments
If you have postgres installed separately, you can use this alternative method without docker:
Setup and active a virtual environment:
``` sh
python3 -m venv venv
source venv/bin/activate
```
Install nycdb: ` pip install -e ./src`
As long as the virtual environment is activated, you can use `nycdb` directly in your shell.
### Adding New Datasets
See the [guide here](ADDING_NEW_DATASETS.md) for the steps to add a new dataset
%package help
Summary: Development documents and examples for nycdb
Provides: python3-nycdb-doc
%description help
# NYCDB
**a tool for building a database of NYC housing data**
This is a Python library and cli tool for installing, updating and managing NYCDB, a postgres database of NYC Housing Data.
For more background information on this project and links to download copies of full database dump visit: https://github.com/nycdb/nycdb. We use the term **nycdb** to refer to both the python software and the running copy of the postgres database.
## Using the cli tool
You will need python 3.6+ and Postgres. The latest version can be installed from pypi with pip: `python3 -m pip install nycdb`
If the installation is successful, you can view a summary of the tool's options by running `nycdb --help`
To print a list of datasets: ` nycdb --list-datasets`
`nycdb`'s main job is to download datasets and import them into postgres. It does not manage the database for you. You can use the flags `-U/--user`, `-D/--database`, `-P/--password`, and `-H/--host` to instruct nycdb to connect to the correct database. See `nycdb --help` for the defaults.
Example: downloading, loading, and verifying the dataset **hpd_violations**:
``` sh
nycdb --download hpd_violations
nycdb --load hpd_violations
nycdb --verify hpd_violations
```
You can also verify all datasets: ` nycdb --verify-all `
By default the downloaded data files are is stored in `./data`. Use `--root-dir` to change the location of the data directory.
You can export a `.sql` file for any dataset by using the `--dump` command
## Development
There are two development workflows: one using python virtual environments and one using docker.
### Using docker and docker-compose
To get started all you have to do is run `docker-compose up`.
On the first run Docker will take longer to downloads and build the images. It
will start a Postgres server on port 5432 of your local machineYou can also press
CTRL-C at any point to stop the server.
In a separate terminal, you will be able to now use the nycdb cli: `docker-compose run nycdb --help`
You can also open a python3 shell: `docker-compose run --entrypoint=python3 nycdb` or run the test suit `docker-compose run --entrypoint="pytest tests" nycdb`
You may also develop on nycdb itself:
* Any changes you make to the tool's source code will automatically be reflected
in future invocations of `nycdb` and the test suite.
* The postgres database server is forwarded to localhost:5432 which you can connect to via a desktop client if you like.
* If you don't have a desktop Postgres client, you can always run
`nycdb --dbshell` to interactively inspect the database with [psql](http://postgresguide.com/utilities/psql.html).
To update the database after adding new packages or dev dependencies, just run `docker-compose up --build --force-recreate --no-deps`. This command will take a bit longer than the regular `docker-compose up` command, but will reinstall packages within the docker container without removing any downloaded files or database data from the docker database.
To stop the database run `docker-compose down`. The downloaded files and database data are stored in docker volumes and are not automatically removed.
However, if you ever want to wipe the database, run `docker-compose down -v`.
### Python3 virtual environments
If you have postgres installed separately, you can use this alternative method without docker:
Setup and active a virtual environment:
``` sh
python3 -m venv venv
source venv/bin/activate
```
Install nycdb: ` pip install -e ./src`
As long as the virtual environment is activated, you can use `nycdb` directly in your shell.
### Adding New Datasets
See the [guide here](ADDING_NEW_DATASETS.md) for the steps to add a new dataset
%prep
%autosetup -n nycdb-0.2.8
%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-nycdb -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Wed May 31 2023 Python_Bot - 0.2.8-1
- Package Spec generated