Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0 Rewrite #12

Draft
wants to merge 19 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ jobs:
include:
- python-version: '3.7'
toxenv: lint
- python-version: '3.7'
toxenv: typing
steps:
- name: Check out repository
uses: actions/checkout@v4
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@
*.egg-info/
*.pyc
.cache/
.coverage
.coverage*
.eggs/
.mypy_cache/
.nox/
.pytest_cache/
.tox/
__pycache__/
build/
dist/
docs/.doctrees/
docs/_build/
venv/
28 changes: 27 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,32 @@
v0.7.0 (in development)
v1.0.0 (in development)
-----------------------
- Package data returned from the JSON API is now internally represented by
[pydantic](https://github.com/samuelcolvin/pydantic)-based classes. As a
result, unknown fields returned by the JSON API are no longer output, and
there may be some errors interacting with non-Warehouse project indices that
do not define all of the same fields as Warehouse. [Please report any
instances of the latter.](https://github.com/jwodder/qypi/issues)
- **Breaking**: The `info`, `readme`, `releases`, `files`, `owner`, and `owned`
commands now take exactly one positional argument, and the output formats of
many of these commands have been simplified for this case
- **Breaking**: The `readme` command no longer takes an `--all-versions`/`-A`
option
- The output from the `releases` command now includes an `is_yanked` field
- **Breaking**: The `--packages` option to the `search` and `browse` commands
is now named `--projects`
- **Breaking**: The output from the `owned` command has changed to use the more
accurate "project" instead of "package".
- Output timestamps now use `+00:00` as the timezone offset instead of `Z`
- Honor yanking (PEP 592)
- Yanked versions are no longer shown by default
- The `info`, `readme`, and `files` commands now have
`--yanked`/`--no-yanked` options for controlling whether to display
yanked versions
- Package arguments to `info`, `files`, and `readme` can now be requirements
specifiers that are used to filter the available versions
- Public library API added
- Support Python 3.10, 3.11, and 3.12
- Drop support for Python 3.6

v0.6.0 (2021-05-31)
-------------------
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ examples below).

Installation
============
``qypi`` requires Python 3.6 or higher. Just use version 6.0 or higher of `pip
``qypi`` requires Python 3.7 or higher. Just use version 6.0 or higher of `pip
<https://pip.pypa.io>`_ for Python 3 (You have pip, right?) to install ``qypi``
and its dependencies::

Expand Down
27 changes: 0 additions & 27 deletions TODO.md

This file was deleted.

28 changes: 25 additions & 3 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ keywords =
classifiers =
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Expand All @@ -35,6 +34,7 @@ classifiers =
Intended Audience :: Information Technology
Topic :: Software Development :: Libraries :: Python Modules
Topic :: System :: Software Distribution
Typing :: Typed

project_urls =
Source Code = https://github.com/jwodder/qypi
Expand All @@ -44,10 +44,11 @@ project_urls =
packages = find:
package_dir =
=src
python_requires = >=3.6
python_requires = >=3.7
install_requires =
click ~= 8.0
click >= 8.0
packaging >= 16
pydantic ~= 2.0
requests ~= 2.20

[options.packages.find]
Expand All @@ -56,3 +57,24 @@ where = src
[options.entry_points]
console_scripts =
qypi = qypi.__main__:qypi

[mypy]
allow_incomplete_defs = False
allow_untyped_defs = False
ignore_missing_imports = False
# <https://github.com/python/mypy/issues/7773>:
no_implicit_optional = True
implicit_reexport = False
local_partial_types = True
pretty = True
show_error_codes = True
show_traceback = True
strict_equality = True
warn_redundant_casts = True
warn_return_any = True
warn_unreachable = True
plugins = pydantic.mypy

[pydantic-mypy]
init_forbid_extra = True
warn_untypes_fields = True
2 changes: 1 addition & 1 deletion src/qypi/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
information.
"""

__version__ = "0.7.0.dev1"
__version__ = "1.0.0.dev1"
__author__ = "John Thorvald Wodder II"
__author_email__ = "qypi@varonathe.org"
__license__ = "MIT"
Expand Down
Loading