Code Monkey home page Code Monkey logo

crustypy's Introduction

Micael Jarniac

Hello!

I'm Micael Jarniac, and I should totally write something about me here, but I can't think of what right now.

MicaelJarniac's GitHub stats

MicaelJarniac's Top Languages

crustypy's People

Contributors

micaeljarniac avatar

Stargazers

 avatar

Watchers

 avatar  avatar

crustypy's Issues

Add more `project_urls`

Things like documentation, source code...

  • Changelog
  • Documentation
  • Code (sphinx) / Source (pytest, flake8-black) / Repository (mypy) / Source Code (nox)
  • Issue Tracker (sphinx) / Issues (coveragepy) / Tracker (pytest, flake8-black) / Bug Tracker (nox)

Run Mypy inside pytest/Nox instead of pre-commit

Mypy quite often needs a complete set of requirements installed in order to function properly.

pre-commit creates a fresh environment for each hook and basically doesn't install anything other than the hook itself.

We can provide additional dependencies for pre-commit to install along with the hook, but that'd mean duplicating the requirements and having to maintain them both up-to-date.

A pre-commit hook can be run from the external environment, instead of its isolated one, but that'd then make it dependant on a properly configured environment, which won't always be the case, and that'd limit where pre-commit can be run from.

Another option would be to have the hook install the full set of requirements, but that'd add a considerable slowdown.

Since running pytest already requires a fully working environment, that could be a nice place to have Mypy run.

Perhaps a subset of Mypy features can still be called from pre-commit.

https://jaredkhan.com/blog/mypy-pre-commit
pre-commit/pre-commit#880 (comment)
https://github.com/dbader/pytest-mypy

Add some example code

Add some very simple code to work as an example on how to write docstrings, how to import the code for tests, and so on.

Recommended editor extensions and config

https://code.visualstudio.com/docs/editor/extension-marketplace

Name Identifier Notes
Better TOML bungcip.better-toml
Code Spell Checker streetsidesoftware.code-spell-checker
Docker ms-azuretools.vscode-docker Related to #6
EditorConfig for VS Code editorconfig.editorconfig
GitHub Actions cschleiden.vscode-github-actions
GitHub Pull Requests and Issues github.vscode-pull-request-github
GitLens - Git supercharged eamodio.gitlens
Image preview kisstkondoros.vscode-gutter-preview
Jinja wholroyd.jinja
Jupyter ms-toolsai.jupyter
Prettier - Code formatter esbenp.prettier-vscode
Python ms-python.python
Python Docstring Generator njpwerner.autodocstring
Python Indent kevinrose.vsc-python-indent
Remote - Containers ms-vscode-remote.remote-containers Related to #6
Sourcery sourcery.sourcery

Set up Black, Flake8, and Mypy to be used.

Add more classifiers

# Get more from http://pypi.python.org/pypi?%3Aaction=list_classifiers

  • Programming Language :: Python :: 3.7
  • Programming Language :: Python :: 3.8
  • Programming Language :: Python :: 3.9
  • Programming Language :: Python :: 3.10
  • Development Status :: ?
  • Intended Audience :: ?
  • Topic :: ?
  • Natural Language :: English

Make initial version `0.0.0`

Python Semantic Release seems to not be triggered on the initial commit, possibly because of it not having an adequate name, so it'd be great to have the initial commit be 0.0.0 and then add a commit like feat: initial release to do the first version bump properly.

Look into Poetry

I'm not sure if Poetry would be a good fit for this template, but it'd be interesting to take a better look into it.
https://python-poetry.org/docs/basic-usage/

Ensure the following work with Poetry:

  • Nox
  • Python Semantic Release
  • Documentation building on ReadTheDocs

poetry config virtualenvs.in-project

Wishlist

Use versioning

It'd be cool to have the version displayed on the bottom of the generated project's README as well, alongside the credits.

Rename main file to `_project.py`

It's currently project/project.py, but it might be better if it's project/_project.py, so it's considered "private", and its "public" parts can be "exported" on project/__init__.py.

Clean up project root

Some files, especially configurations, are starting to pile up on the project root. It'd be great to find a better solution, maybe having them inside a different folder, maybe finding ways to merge some of them...

Default Discord fields to "ignored" if not using Discord

Related to #40.
If not using Discord, default its related fields to something like ignored or inactive, to make it less confusing.
As far as I know, we can't simply tell Cookiecutter to not show those fields, so this might be the best approach for now.

Configure tools to only run inside `src/`

Related to #41.
I'm still not too sure about this one, but I think it does make sense for some tools to only run inside src/.

Maybe just ignoring venv/ and .venv/ might do the trick for most tools.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.