skip to navigation
skip to content

cool-commits 0.1.2

Find the coolest git commits' hashes in your project!

# Cool Commits

## What?
Let's find the coolest commits hashes in the world!

Every commits has a short hash format that looks like: `fc5202c`.
Sometimes it looks **cool**: `6661666` / `2121212` / `aaa6aaa`.

I made this small project because I'm obsessed with finding cool commits, every commit I do,
I'm wishing I'll have something cool, most of the time my heart breaks :(

## Requirements
- Python3.5 or higher
- A absolute path of a directory with git repo in it

## Installation
`pip install cool-commits`

## Executing
If you want the **TL;DR** version, with only the hash as a list, run:

`python -m cool_commits find /path/to/directory/with/git`

This will print something like:

`6661666 aaa6aaa`

Each commit represent the coolest commit from each `parser`(algorithm/pattern)

If you want more info about the commit and the `parser`, run:

`python -m cool_commits info /path/to/directory/with/git`

This will print:
```
============================================================

Commit hash: 6661666
Commit parser: < MostCommon >

Trying to find a commit with highest most common repeated char.
For example:
1231114 - has rank of 4, because `1` is the most common char.

commit 6661666fe6aa59cb901027d14013d46b28f2de76
Author: Author Name <myname@gmail.com>
Date: Thu Mar 9 16:00:45 2017 -0800

Added command line interfaces for future refactoring

============================================================

Commit hash: aaa6aaa
Commit parser: < Consecutive >

Trying to find a commit with highest consecutive chars.
For example:
1231114 - has rank of 3, because `1` is consecutive 3 the most.

commit aaa6aaabfc870671fcc4075845d002438462c34e
Author: Author Name <myname@gmail.com>
Date: Mon Nov 10 00:45:13 2014 -0800

Raising an error when the user has an invalid input

============================================================
```
## Using `cool_commit` module form code
if you want to integrate the cool_coomit output into your code, you can import the same function as in the command line tool like this:
```
from cool_commits import find, info

# Returning a commit hash for each parser's commit
print(*find('/path/to/directory/with/git'))

# Returning a text info for each parser's commit
print(*info('/path/to/directory/with/git'))
```

## Writing your own parser
*Author note: If you think your parser is cool, submit it as a PR, or by email to: orduani@gmail.com*

If you want to add your own parser, all you need to do is write custom class, that inherit from `BaseParser` and implement the `parse` method:
```
from cool_commits.parsers import BaseParser

class TestParser(BaseParser):
description = "Optional description that describe how your parser works"

def parse(self, commits):
# Write here you logic. `commits` is a list of str commits
# For this example, my parser will return the first commit,
# in reality, you want to iterate over the commits and return
# the coolest one.
return commits[0]

# To use it, call the find/info functions
print(find('/path/to/directory/with/git'))
```


 
File Type Py Version Uploaded on Size
cool_commits-0.1.2-py3-none-any.whl (md5) Python Wheel py3 2017-09-14 6KB