Skip to content

Commit

Permalink
release: v1.0.0 (#174)
Browse files Browse the repository at this point in the history
  • Loading branch information
eonu authored Dec 29, 2024
2 parents aa9821e + bc5edcf commit 558da70
Show file tree
Hide file tree
Showing 83 changed files with 544 additions and 271 deletions.
28 changes: 21 additions & 7 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
linting:
executor:
name: python/default
tag: "3.11"
tag: "3.13"
steps:
- checkout
- python/install-packages:
Expand All @@ -18,6 +18,19 @@ jobs:
name: Linting
command: |
poetry run tox -e lint
typechecks:
executor:
name: python/default
tag: "3.13"
steps:
- checkout
- python/install-packages:
pkg-manager: poetry
args: --only base
- run:
name: Typechecking (MyPy)
command: |
poetry run tox -e types
tests:
parameters:
version:
Expand All @@ -30,10 +43,10 @@ jobs:
- python/install-packages:
pkg-manager: poetry
args: --only base
- run:
name: Docstring tests
command: |
poetry run tox -e tests.doctest
# - run:
# name: Docstring tests
# command: |
# poetry run tox -e tests.doctest
- run:
name: Unit tests
command: |
Expand All @@ -46,17 +59,18 @@ jobs:
name: python/default
steps:
- coveralls/upload:
carryforward: 3.11, 3.12
carryforward: 3.11, 3.12, 3.13
parallel_finished: true

workflows:
checks:
jobs:
- linting
- typechecks
- tests:
matrix:
parameters:
version: ["3.11", "3.12"]
version: ["3.11", "3.12", "3.13"]
- coverage:
requires:
- tests
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@

All notable changes to this project will be documented in this file.

## [v1.0.0](https://github.com/eonu/feud/releases/tag/v1.0.0) - 2024-12-29

### Bug Fixes

- unify decorated function metadata ([#170](https://github.com/eonu/feud/issues/170))

### Documentation

- remove beta references ([#172](https://github.com/eonu/feud/issues/172))
- add click extension information ([#173](https://github.com/eonu/feud/issues/173))

### Features

- support python v3.13, add `mise.toml`, remove `doctest` ([#165](https://github.com/eonu/feud/issues/165))
- add `fractions.Fraction` to `feud.typing` ([#167](https://github.com/eonu/feud/issues/167))
- add `pydantic_extra_types.S3Path` to `feud.typing` ([#166](https://github.com/eonu/feud/issues/166))
- add `pydantic.SocketPath` to `feud.typing` ([#169](https://github.com/eonu/feud/issues/169))
- add `mypy` support and type stubs ([#171](https://github.com/eonu/feud/issues/171))

## [v0.4.1](https://github.com/eonu/feud/releases/tag/v0.4.1) - 2024-10-17

### Documentation
Expand Down
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,6 @@ We are thankful for their work and all the communities who have paved the way wi
---

<p align="center">
<b>Feud</b> &copy; 2023-2025, Edwin Onuonga - Released under the <a href="https://opensource.org/licenses/MIT">MIT</a> license.<br/>
<b>Feud</b> &copy; 2023, Edwin Onuonga - Released under the <a href="https://opensource.org/licenses/MIT">MIT</a> license.<br/>
<em>Authored and maintained by Edwin Onuonga.</em>
</p>
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,6 @@ By contributing, you agree that your contributions will be licensed under the re
---

<p align="center">
<b>Feud</b> &copy; 2023-2025, Edwin Onuonga - Released under the <a href="https://opensource.org/licenses/MIT">MIT</a> license.<br/>
<b>Feud</b> &copy; 2023, Edwin Onuonga - Released under the <a href="https://opensource.org/licenses/MIT">MIT</a> license.<br/>
<em>Authored and maintained by Edwin Onuonga.</em>
</p>
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023-2025 Edwin Onuonga (eonu) <[email protected]>
Copyright (c) 2023 Edwin Onuonga (eonu) <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,8 @@ base: .check-poetry
dev: .check-poetry
poetry install --sync --only base
poetry run invoke install

# clean temporary repository files
.PHONY: clean
clean: .check-poetry
poetry run invoke clean
30 changes: 24 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<p align="center"><b>Not all arguments are bad.</b></p>
</p>

<img src="https://svgur.com/i/zk4.svg" align="right" width="100px">
<img src="https://raw.githubusercontent.com/eonu/feud/master/docs/source/_static/images/logo/logo.png" align="right" width="100px">

<p align="center">
<em>Build powerful CLIs with simple idiomatic Python, driven by type hints.</em>
Expand Down Expand Up @@ -166,9 +166,9 @@ for even beginner Python developers to quickly create sophisticated CLIs.

The above function is written in idiomatic Python, adhering to language
standards and using basic core language features such as type hints and
docstrings to declare all of the relevant information about the CLI,
but relying on Feud to carry out the heavy lifting of converting these
language elements into a fully-fledged CLI.
docstrings to declare the relevant information about the CLI, but relying
on Feud to carry out the heavy lifting of converting these language elements
into a fully-fledged CLI.

#### Grouping commands

Expand Down Expand Up @@ -757,6 +757,24 @@ Repeat for confirmation: ***
</tr>
</table>

### Integrations

As Feud commands and groups compile to Click objects under the hood,
this opens up the ability to interact with all integrations that Click
supports.

- To convert a `feud.Group` into a `click.Group`, use the `.compile()` method defined on `feud.Group`.
- The `@feud.command` decorator converts a function into a `click.Command`.

Once you have a `click.Command` or `click.Group` produced by Feud,
it is possible to use it with Click extensions such as:

- [`click-man`](https://github.com/click-contrib/click-man): Automate generation of manual pages for Click applications.
- [`click-completion`](https://github.com/click-contrib/click-completion): Add or enhance `bash`, `fish`, `zsh` and `powershell` completion in Click.
- [`sphinx-click`](https://github.com/click-contrib/sphinx-click): A Sphinx plugin to automatically document Click-based applications.

For more examples of Click extensions, see the [`click-contrib`](https://github.com/click-contrib/) project.

## Installation

You can install Feud using `pip`.
Expand Down Expand Up @@ -953,7 +971,7 @@ All contributions to this repository are greatly appreciated. Contribution guide

> <img src="https://i.postimg.cc/jq3MZSTD/avatar.png" align="left"/>
> <b>We're living in an imperfect world!</b><br/>
> <sup>Feud is in a public beta-test phase, likely with <em>lots</em> of bugs. Please <a href="https://github.com/eonu/feud/issues/new/choose">leave feedback</a> if you come across anything strange!</sup>
> <sup>Feud is still in a test phase, likely with <em>lots</em> of bugs. Please <a href="https://github.com/eonu/feud/issues/new/choose">leave feedback</a> if you come across anything strange!</sup>
## Licensing

Expand All @@ -962,6 +980,6 @@ Feud is released under the [MIT](https://opensource.org/licenses/MIT) license.
---

<p align="center">
<b>Feud</b> &copy; 2023-2025, Edwin Onuonga - Released under the <a href="https://opensource.org/licenses/MIT">MIT</a> license.<br/>
<b>Feud</b> &copy; 2023, Edwin Onuonga - Released under the <a href="https://opensource.org/licenses/MIT">MIT</a> license.<br/>
<em>Authored and maintained by Edwin Onuonga.</em>
</p>
2 changes: 1 addition & 1 deletion docs/source/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2023-2025 Feud Developers.
# Copyright (c) 2023 Feud Developers.
# Distributed under the terms of the MIT License (see the LICENSE file).
# SPDX-License-Identifier: MIT
# This source code is part of the Feud project (https://feud.wiki).
Expand Down
6 changes: 3 additions & 3 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2023-2025 Feud Developers.
# Copyright (c) 2023 Feud Developers.
# Distributed under the terms of the MIT License (see the LICENSE file).
# SPDX-License-Identifier: MIT
# This source code is part of the Feud project (https://feud.wiki).
Expand All @@ -18,9 +18,9 @@
sys.path.insert(0, os.path.abspath("../.."))

project = "feud"
copyright = "2023-2025, Feud Developers" # noqa: A001
copyright = "2023, Feud Developers" # noqa: A001
author = "Edwin Onuonga (eonu)"
release = "0.4.1"
release = "1.0.0"

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
Expand Down
1 change: 1 addition & 0 deletions docs/source/sections/typing/pydantic.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ Path types
- :py:obj:`pydantic.types.DirectoryPath` (``>= 2.0.3``)
- :py:obj:`pydantic.types.FilePath` (``>= 2.0.3``)
- :py:obj:`pydantic.types.NewPath` (``>= 2.0.3``)
- :py:obj:`pydantic.types.SocketPath` (``>= 2.10.0``)

Decimal type
------------
Expand Down
5 changes: 5 additions & 0 deletions docs/source/sections/typing/pydantic_extra_types.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,11 @@ Phone number type

- :py:obj:`pydantic_extra_types.phone_numbers.PhoneNumber` (``>= 2.1.0``)

Path types
----------

- :py:obj:`pydantic_extra_types.s3.S3Path` (``>= 2.10.0``)

Payment types
-------------

Expand Down
5 changes: 3 additions & 2 deletions docs/source/sections/typing/stdlib.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ The following Python standard library types can be used as type hints for Feud c
.. tip::

Types listed on this page from the :py:mod:`collections`, :py:mod:`datetime` :py:mod:`decimal`,
:py:mod:`enum`, :py:mod:`pathlib` and :py:mod:`uuid` standard library modules are easily accessible
from the :py:mod:`feud.typing` module.
:py:mod:`enum`, :py:mod:`fractions`, :py:mod:`pathlib`, :py:mod:`uuid` and :py:mod:`typing`
standard library modules are easily accessible from the :py:mod:`feud.typing` module.

It is recommended to import the :py:mod:`feud.typing` module with an alias such as ``t`` for convenient short-hand use, e.g.

Expand Down Expand Up @@ -261,6 +261,7 @@ Number types can be used to indicate integers, floats or decimal numbers.
- :py:obj:`int` should be used to specify integer inputs.
- :py:obj:`float` should be used to specify fixed precision-floating point inputs.
- :py:obj:`decimal.Decimal` should be used to specify arbitrary-precision floating point inputs.
- :py:obj:`fractions.Fraction` should be used to specify fractions.

.. seealso::

Expand Down
2 changes: 1 addition & 1 deletion feud/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2023-2025 Feud Developers.
# Copyright (c) 2023 Feud Developers.
# Distributed under the terms of the MIT License (see the LICENSE file).
# SPDX-License-Identifier: MIT
# This source code is part of the Feud project (https://feud.wiki).
Expand Down
2 changes: 1 addition & 1 deletion feud/_internal/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2023-2025 Feud Developers.
# Copyright (c) 2023 Feud Developers.
# Distributed under the terms of the MIT License (see the LICENSE file).
# SPDX-License-Identifier: MIT
# This source code is part of the Feud project (https://feud.wiki).
Expand Down
Loading

0 comments on commit 558da70

Please sign in to comment.