This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Hashmoji is a simple Python 3 program and library for visualizing content hashes as emoji.

About

Hashmoji is really just an executable joke. It is not intended to be secure or meet the needs of Serious Business. But itโ€™s fun alpha-quality stuff that you may enjoy.

Installation

Make sure you have Python 3 installed. On Mac OS X you can install Python 3 via homebrew:

brew update
brew install python3

Once you have Python 3 installed you can clone this repository and install it:

git clone git@github.com:mcroydon/hashmoji.git
cd hashmoji
python3 setup.py install

Or if you have PIP (recommended):

pip3 install hashmoji

You may also want to consider installing Hashmoji in a Virtualenv.

Command-line usage

Hashmoji ships as both an executable utility and as a Python module that you can use to visualize output from hashlib or any bytes object divisible by 4 bytes.

To use hashmoji similar to sha1sum:

$ hashmoji.py README.rst
๐Ÿน ๐ŸŒˆ ๐Ÿ†Ž ๐Ÿ˜Š๐Ÿ”ข

To see all available options, please run hashmoji.py --help:

mattbookpro:hashmoji mcroydon$ python3 hashmoji.py -h
Usage: hashmoji.py [options] FILE or no arguments for stdin

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -a ALGORITHM, --algorithm=ALGORITHM
                        Use ALGORITHM from hashlib.  Choices: ['SHA512',
                        'sha512', 'sha384', 'ecdsa-with-SHA1', 'SHA256',
                        'dsaEncryption', 'SHA384', 'MDC2', 'SHA224',
                        'RIPEMD160', 'dsaWithSHA', 'MD4', 'sha', 'MD5',
                        'sha224', 'md4', 'md5', 'sha1', 'sha256', 'mdc2',
                        'DSA-SHA', 'ripemd160', 'DSA', 'SHA1', 'SHA']
  -n, --no-hash         Treat the content as binary data divisible by 4 bytes
                        suitable for conversion to emoji

  Format Options:
    -t, --text          Read the file in text mode (default).
    -b, --binary        Read the file in binary mode.
    -x, --hex           Read the file as hexidecimal encoded binary data, such
                        as a hexdigest.  Implies --no-hash.
    -e ENCODING, --encoding=ENCODING
                        Encoding to be used for text.  (default is utf-8)

You can use a specific hash algorithm based on the algorithms available to hashlib:

$ hashmoji.py -a sha512 README.rst
๐Ÿ‘ต ๐Ÿš ๐Ÿ˜ฎ ๐Ÿ•ž ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ”ถ ๐ŸŒŠ ๐Ÿšซ ๐ŸŽ ๐Ÿ”ž โœ” ๐Ÿ†š ๐ŸŽ ๐Ÿšœ ๐Ÿข๐ŸŽ‹

New in 0.1.2, you can also omit a FILE and pipe stdin to hashmoji. This is particularly useful when combined with hex format for visualizing the output of programs that include a single line of hex-encoded data such as git or md5 -q:

$ git rev-parse HEAD | hashmoji.py -x
โ™ฆ ๐Ÿข ๐Ÿ‘ฃ ๐Ÿ‘ธ๐Ÿ€„

Hashmoji has only been tested on Mac OS X 10.8 and 10.9 in Terminal.app. It definitely doesnโ€™t work inside a screen session. Trust me.

Library usage

Hashmoji is designed to work with either a bytes object or a hashlib digest:

>>> from hashmoji import hashmoji

# Use with hashlib
>>> import hashlib
>>> hashmoji(hashlib.sha1(b"This is my test string."))
'๐Ÿ“ฑ ๐Ÿ”ข ๐Ÿ“ฉ ๐Ÿšฆ๐Ÿ“ฒ'

# Use with bytes as long as the bytes are divisible by 4 bytes
>>> mybytes = b'\x916\xb8|\x1b\xf7&\xaa\x92(;OQX\x95^w\x1c\xb2\xd6\xbe\xb9_\x8b\xcf\xdcO\xa3\x8f\xcf\xdbq\x89\xd0\nF\xce1\x81\xca\xdd\x15\xf4\xe1\x10\x807\x19\x1b\x0f\xe8\x86\x08\xf7O\x19\xf1\x16\xf3\x93\x97\xfa{\x81'
>>> len(mybytes)
64
>>> len(mybytes) % 4
0
>>> hashmoji(mybytes)
'๐Ÿ† ๐Ÿ’™ ๐ŸŒ€ ๐Ÿ’ ๐Ÿ•• ๐Ÿฏ ๐Ÿ’ƒ ๐ŸŽก โšก ๐Ÿ”™ ๐Ÿš โž— ๐ŸŸ โžก ๐Ÿ‘๐Ÿญ'

Testing

If you have setuptools:

$ python3 setup.py test

If you have nose:

$ nosetests

If you have neither:

$ python3 tests.py

To Do

  • Be smarter about not loading file contents in to memory sometimes.

License

Hashmoji is released under a 3-clause BSD license.

Release History

Release History

0.1.3

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
hashmoji-0.1.3-py2.py3-none-any.whl (16.2 kB) Copy SHA256 Checksum SHA256 3.3 Wheel Nov 13, 2013
hashmoji-0.1.3.tar.gz (9.1 kB) Copy SHA256 Checksum SHA256 โ€“ Source Nov 13, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting