git-of-theseus
black
git-of-theseus | black | |
---|---|---|
13 | 322 | |
2,362 | 37,522 | |
- | 0.8% | |
4.3 | 9.4 | |
6 months ago | 5 days ago | |
Python | Python | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
git-of-theseus
-
I Parsed Git Statistics
https://github.com/erikbern/git-of-theseus
- The half-life of code and the ship of Theseus
-
Show HN: Visualize the Entropy of a Codebase with a 3D Force-Directed Graph
A tangentially related tool you can use to look at a repo over time is Git of Theseus[1]. It shows things like "what percentage of the code in this repo survives 6 months.
[1]https://erikbern.com/2016/12/05/the-half-life-of-code.html
-
The Road to 128 bit Linux
There're some more in the presentation article: https://erikbern.com/2016/12/05/the-half-life-of-code.html#:...
A kernel line has half-life 6.6 years.
-
How to look at familiar codebase with “fresh” eyes again
Look at the codebase with Git of Theseus or Codescene
-
Rich Hickey – open-source is Not About You
I guess one good example (that was mentioned just yesterday here on HN) would be Flask vs FastAPI: https://news.ycombinator.com/item?id=31953470 - "There are no open issues or pull requests on Flask "
Quick count finds that FastAPI has 48422 lines of code, while Flask has 9995. Flask just achieved "Zero standing issues/PRs" while FastAPI has 1.1K open issues and ~500 open PRs.
Large surface area/API quickly leads to be overwhelmed when you're trying to maintain it. Adding new features/fixing existing ones becomes harder as well.
Best bet to make sure something is maintainable over time is to add as little as possible to it, and if you really have to, make sure you're also removing something at the same time.
Otherwise you need a massive team just to be able to "survive" and not making things rot.
There is this blogpost as well about the "half-life of code": https://erikbern.com/2016/12/05/the-half-life-of-code.html
Someone run that tool on the Clojure codebase as well, and it really shows how well the Clojure codebase has been written, as most code that was initially written is still there and does what it needs, without having to be rewritten.
- Show HN: Git Timeline Generator – Visualize contributions to any Git project
-
Do you think it's possible to automatically detect Technical Debt from the source code?
Some parts of technical debt, you can find with https://github.com/erikbern/git-of-theseus or https://codescene.com/
- Git-of-Theseus – Analyze how a Git repo grows over time
black
-
How to setup Black and pre-commit in python for auto text-formatting on commit
$ git commit -m "add pre-commit configuration" [INFO] Initializing environment for https://github.com/psf/black. [INFO] Installing environment for https://github.com/psf/black. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... black................................................(no files to check)Skipped [main 6e21eab] add pre-commit configuration 1 file changed, 7 insertions(+)
-
Enhance Your Project Quality with These Top Python Libraries
Black: Known as “The Uncompromising Code Formatter”, Black automatically formats your Python code to conform to the PEP 8 style guide. It takes away the hassle of having to manually adjust your code style.
-
Uv: Python Packaging in Rust
black @ git+https://github.com/psf/black
-
Let's meet Black: Python Code Formatting
In the realm of Python development, there is a multitude of code formatters that adhere to PEP 8 guidelines. Today, we will briefly discuss how to install and utilize black.
-
Show HN: Visualize the Entropy of a Codebase with a 3D Force-Directed Graph
Perfect, that worked, thank you!
I thought this could be solved by changing the directory to src/ and then executing that command, but this didn't work.
This also seems to be an issue with the web app, e.g. the repository for the formatter black is only one white dot https://dep-tree-explorer.vercel.app/api?repo=https://github...
- Introducing Flask-Muck: How To Build a Comprehensive Flask REST API in 5 Minutes
-
Embracing Modern Python for Web Development
Ruff is not only much faster, but it is also very convenient to have an all-in-one solution that replaces multiple other widely used tools: Flake8 (linter), isort (imports sorting), Black (code formatter), autoflake, many Flake8 plugins and more. And it has drop-in parity with these tools, so it is really straightforward to migrate from them to Ruff.
-
Auto-formater for Android (Kotlin)
What I am looking for is something like Black for Python, which is opinionated, with reasonable defaults, and auto-fixes most/all issues.
-
Releasing my Python Project
1. LICENSE: This file contains information about the rights and permissions granted to users regarding the use, modification, distribution, and sharing of the software. I already had an MIT License in my project. 2. pyproject.toml: It is a configuration file typically used for specifying build requirements and backend build systems for Python projects. I was already using this file for Black code formatter configuration. 3. README.md: Used as a documentation file for your project, typically includes project overview, installation instructions and optionally, contribution instructions. 4. example_package_YOUR_USERNAME_HERE: One big change I had to face was restructuring my project, essentially packaging all files in this directory. The name of this directory should be what you want to name your package and shoud not conflict with any of the existing packages. Of course, since its a Python Package, it needs to have an __init__.py. 5. tests/: This is where you put all your unit and integration tests, I think its optional as not all projects will have tests. The rest of the project remains as is.
-
Lute v3 - installed software for learning foreign languages through reading
using pylint and black ("the uncompromising code formatter")
What are some alternatives?
Gource - software version control visualization
autopep8 - A tool that automatically formats Python code to conform to the PEP 8 style guide.
pre-commit - A framework for managing and maintaining multi-language pre-commit hooks.
prettier - Prettier is an opinionated code formatter.
compojure - A concise routing library for Ring/Clojure
yapf - A formatter for Python files
pre-commit-hooks - Some out-of-the-box hooks for pre-commit
Pylint - It's not just a linter that annoys you!
ts-macros - A typescript transformer / plugin that allows you to write macros for typescript!
ruff - An extremely fast Python linter and code formatter, written in Rust.
yesql - A Clojure library for using SQL.
isort - A Python utility / library to sort imports.