All Projects → dmyersturnbull → tyrannosaurus

dmyersturnbull / tyrannosaurus

Licence: Apache-2.0 license
Generate beautifully modern (2021+) Python projects with seamless, GitHub-based CI/CD, Docker and Conda support, and out-of-the-box integration with >30 best-practices tools and standards.

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to tyrannosaurus

rubric
Linter Config Initializer for Python
Stars: ✭ 21 (-76.14%)
Mutual labels:  poetry, pyproject-toml
Chinese Poetry
The most comprehensive database of Chinese poetry 🧶最全中华古诗词数据库, 唐宋两朝近一万四千古诗人, 接近5.5万首唐诗加26万宋诗. 两宋时期1564位词人,21050首词。
Stars: ✭ 34,881 (+39537.5%)
Mutual labels:  poetry
Text-Generate-RNN
中国古诗生成(文本生成)
Stars: ✭ 106 (+20.45%)
Mutual labels:  poetry
cummings.ee
A collection of the work of Edward Estlin Cummings, as it enters the public domain.
Stars: ✭ 32 (-63.64%)
Mutual labels:  poetry
poesy
Poetry generation via natural language markov models
Stars: ✭ 56 (-36.36%)
Mutual labels:  poetry
Saaghar
“Saaghar” (ساغر) is a Persian poetry software written by C++ under Qt framework, it uses "ganjoor" database as its database. It has tab feature in both its “Viewer” and its “Search” page that cause it be suitable for research goals.
Stars: ✭ 42 (-52.27%)
Mutual labels:  poetry
poet-v
Vim Meets Poetry and Pipenv Virtual Environments
Stars: ✭ 57 (-35.23%)
Mutual labels:  poetry
jira-sprint-analytics
No description or website provided.
Stars: ✭ 13 (-85.23%)
Mutual labels:  poetry
Tensorflow poems
中文古诗自动作诗机器人,屌炸天,基于tensorflow1.10 api,正在积极维护升级中,快star,保持更新!
Stars: ✭ 3,429 (+3796.59%)
Mutual labels:  poetry
ponim
Nim + Python + Poetry = :)
Stars: ✭ 32 (-63.64%)
Mutual labels:  poetry
inboard
🚢 Docker images and utilities to power your Python APIs and help you ship faster. With support for Uvicorn, Gunicorn, Starlette, and FastAPI.
Stars: ✭ 106 (+20.45%)
Mutual labels:  poetry
Divan.hs
Ottoman Divan poetry vezin checker in Haskell!
Stars: ✭ 37 (-57.95%)
Mutual labels:  poetry
flyyer-python
Python helpers to create https://flyyer.io URLs for link previews | Manage your og:images from a single dashboard
Stars: ✭ 11 (-87.5%)
Mutual labels:  poetry
Dephell
📦 🔥 Python project management. Manage packages: convert between formats, lock, install, resolve, isolate, test, build graph, show outdated, audit. Manage venvs, build package, bump version.
Stars: ✭ 1,730 (+1865.91%)
Mutual labels:  poetry
blackout
Procedurally generated blackout poetry
Stars: ✭ 56 (-36.36%)
Mutual labels:  poetry
poemexe
Code for the poem.exe bot on Twitter and Mastodon.
Stars: ✭ 17 (-80.68%)
Mutual labels:  poetry
action-python-poetry
Template repo to quickly make a tested and documented GitHub action in Python with Poetry
Stars: ✭ 85 (-3.41%)
Mutual labels:  poetry
dotfiles
🔯 A collection of my rc files (tmux, neovim, zsh, fish, poetry, git, ...etc) and utilities that make everyday coding fun!
Stars: ✭ 23 (-73.86%)
Mutual labels:  poetry
poesy
Poetic processing, for Python.
Stars: ✭ 28 (-68.18%)
Mutual labels:  poetry
rules poetry
Bazel rules that use Poetry for Python package management
Stars: ✭ 40 (-54.55%)
Mutual labels:  poetry

Tyrannosaurus

Version status Version on PyPi Version on GitHub Version on Docker Hub Version on Conda-Forge
Build (Actions) Documentation status Coverage (coveralls) Coverage (codecov)
Maintainability (Code Climate) Scrutinizer Code Quality CodeFactor License DOI Created with Tyrannosaurus

An opinionated, forwards-looking Python template for 2021+.

Generate elegant, ready-to-use Python projects that have excellent continuous integration and deployment (CI/CD). Integrated with Docker Hub, the GitHub Container Registry, Azure, Conda-Forge, and an array of linting, static analysis, security testing, documentation, dependency management, and CI/CD tools, including an optional custom tool to keep all duplicate project metadata synchronized to pyproject.toml.

🎨 Design / generating a new project

This is a modern template built with Poetry, GitHub Actions, and no legacy files or tools. See below for a comparison to other tools. Also see Tyrannosaurus’s little sister science-notebook-template 🧪 for scientific publication repos.

Don’t make 55 commits trying to configure CI/CD workflows. After creating an empty GitHub repo called myproject:

pip install tyrannosaurus
tyrannosaurus new myproject --track
# if on a GitHub organization, pass --user my-org-name

After initializing your project, Tyrannosaurus will list manual steps like adding API keys. Just delete files you don’t want. Or pass --extras to include extra files like azure-pipelines config and codemeta.json.

💡 Main behavior / features

Generated projects are integrated with various tools (from PyPi) and external CI/CD/code-quality systems. GitHub Actions are used by default, but config files for Travis and Azure Pipelines are also provided. You can swap out, modify, or disable anything as you see fit. See the docs 📚 for more information.

Here’s how your new project will behave when first set up:

  • Commit ⇒ Files are linted and verified for integrity
  • Make a pull request ⇒ Code is built and tested
  • Push to the main branch ⇒ Code is built and tested; code quality, coverage, and security badges are updated
  • Make a GitHub release ⇒ Artifacts are sent to GitHub, PyPi, Docker Hub, the GCR, and readthedocs
  • tox ⇒ Tests are run locally
  • tyrannosaurus sync ⇒ Project metadata is synced to pyproject.toml
  • tyrannosaurus update ⇒ New dependency versions from PyPi and/or Conda are listed
  • tyrannosaurus [--aggressive] clean ⇒ Remove temp files

🎁 Full features / integrations

Temporary issue in safety ‡ This feature is experimental and does not yet support all intended sync targets.

✏️ Syncing to pyproject.toml

Note: This feature is only partly complete.

Tyrannosaurus has an optional sync command that synchronizes metadata from pyproject.toml to other files, so that all of your metadata is in pyproject.toml. There are 16 available target files, including docs/conf.py, tox.ini, .pre-commit-config.yaml, readthedocs.yml, .travis.yml, and __init__.py. Settings like dev dependencies, project version, license headers, and preferred line length can be listed exactly once, in pyproject.toml.

Tyrannosaurus itself can be included as a dependency (but is not by default). Running tyrannosaurus build will run poetry lock, synchronize project metadata (via sync), build, run tests, install, and clean up. Target files can be disabled in [tool.tyrannosaurus.targets].

🔨 Building your project locally

You can test your project locally. Install Poetry and Tox (pip install tox). Then just type tox to build artifacts and run tests. You can install locally with poetry install . or just pip install .. To create an initial Anaconda recipe or environment file, run tyrannosaurus recipe or tyrannosaurus env. After that, you can use sync to keep them up-to-date with pyproject.toml.

🎯 Similar templates and tools

There are various other templates based on cookiecutter and copier. See which best suits your needs and style.

I designed Tyrannosaurus to solve issues with existing tools. Here are features that other tools lack:

  • An elegant CI/CD workflow: The workflow gets kicked off only via git push and GitHub releases.
  • Interoperability with Conda, including recipes and environment files, by mapping dependencies and metadata.
  • Automated publishing to PyPi, Conda-Forge, Docker Hub, the GitHub Container Registry, and readthedocs.
  • No duplication between project files. (Not 100%: some duplication remains.)
  • Built-in optional support for extra/alternative tools, such as Travis and codemeta.
  • Complete absence of legacy tools, files, and Python 2 support.

🏁 Feature table

Tool Main techs CD kickoff N int.† modern‡ Docker Conda sync any-OS
Tyranosaurus Actions, Poetry, Tox git, GitHub 30 ✔️ ✔️ ✔️ ✔️ ✔️
hypermodern-python Actions, Poetry, Nox git, Poetry 20 ✔️ ✔️
copier-poetry Actions, Poetry, Make git, manual 15 ✔️ ✔️
python-package-template Actions, Poetry, Tox, Make git, Make 20 ✔️ ✔️
pyscaffold setuptools, Tox Gitlab, manual 10 ✔️
wemake-python-package Actions, Poetry, Make git, Poetry 10 ✔️
best-practices Actions, pipenv git, pipenv 10 ✔️ ✔️
python-blueprint Actions, setuptools, Tox git, manual 5 ✔️ ✔️
cookiecutter-pypackage Travis, setuptools, Tox git, manual 10
cookiecutter-pylibrary Travis, setuptools, Tox git, manual 20
cookiecutter-django Actions, setuptools, Tox git, manual 15 ✔️ ✔️
django-init Actions, setuptools, Make git, manual 15 ✔️ ✔️
docker-science Make, Docker, setuptools no CI/CD 15 ✔️
science-notebook-template Conda no CI/CD 5 ✔️ ✔️

Notes:

N int.: Approximate number of built-in integrations with tools and standards. What counts is very roughly defined. Modern: Lacks legacy files and tools. I’m including Make, setuptools, pipenv, and some others. Note: copier syncs with a remote template. It’s a neat idea that Tyrannosaurus lacks.

Some of the packages in the table above need more explanation:

Projects made with Tyrannosaurus

These are some example projects that were generated with Tyrannosaurus:

🍁 Contributing

New issues and pull requests are welcome. Please refer to the contributing guide and security policy. Generated with tyrannosaurus: tyrannosaurus new tyrannosaurus

                                              .++++++++++++.
                                           .++HHHHHHH^^HHH+.
                                          .HHHHHHHHHH++-+-++.
                                         .HHHHHHHHHHH:t~~~~~
                                        .+HHHHHHHHHHjjjjjjjj.
                                       .+NNNNNNNNN/++/:--..
                              ........+NNNNNNNNNN.
                          .++++BBBBBBBBBBBBBBB.
 .tttttttt:..           .++BBBBBBBBBBBBBBBBBBB.
+tt+.      ``         .+BBBBBBBBBBBBBBBBBBBBB+++cccc.
ttt.               .-++BBBBBBBBBBBBBBBBBBBBBB++.ccc.
+ttt++++:::::++++++BBBBBBBBBBBBBBBBBBBBBBB+..++.
.+TTTTTTTTTTTTTBBBBBBBBBBBBBBBBBBBBBBBBB+.    .ccc.
  .++TTTTTTTTTTBBBBBBBBBBBBBBBBBBBBBBBB+.      .cc.
    ..:++++++++++++++++++BBBBBB++++BBBB.
           .......      -LLLLL+. -LLLLL.
                        -LLLL+.   -LLLL+.
                        +LLL+       +LLL+
                        +LL+         +ff+
                        +ff++         +++:
                        ++++:
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].