⚡ Automatically decrypt encryptions without knowing the key or cipher, decode encodings, and crack hashes ⚡

Overview

Translations
🇩🇪 DE 🇫🇷 FR 🇭🇺 HU 🇮🇩 ID 🇮🇹 IT 🇳🇱 NL 🇧🇷 PT-BR 🇷🇺 RU 🇨🇳 ZH

➡️ Documentation | Discord | Installation Guide ⬅️
Ciphey

GitHub commit activity Discord Ciphey Ciphey
Fully automated decryption/decoding/cracking tool using natural language processing & artificial intelligence, along with some common sense.


Installation Guide

🐍 Python

🐋 Docker (Universal)

🍎 MacPorts (macOS)

python3 -m pip install ciphey --upgrade docker run -it --rm remnux/ciphey sudo port install ciphey
Linux Mac OS Windows
GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status

🤔 What is this?

Input encrypted text, get the decrypted text back.

"What type of encryption?"

That's the point. You don't know, you just know it's possibly encrypted. Ciphey will figure it out for you.

Ciphey can solve most things in 3 seconds or less.

Ciphey demo

Ciphey aims to be a tool to automate a lot of decryptions & decodings such as multiple base encodings, classical ciphers, hashes or more advanced cryptography.

If you don't know much about cryptography, or you want to quickly check the ciphertext before working on it yourself, Ciphey is for you.

The technical part. Ciphey uses a custom built artificial intelligence module (AuSearch) with a Cipher Detection Interface to approximate what something is encrypted with. And then a custom-built, customisable natural language processing Language Checker Interface, which can detect when the given text becomes plaintext.

No neural networks or bloated AI here. We only use what is fast and minimal.

And that's just the tip of the iceberg. For the full technical explanation, check out our documentation.

Features

  • 50+ encryptions/encodings supported such as binary, Morse code and Base64. Classical ciphers like the Caesar cipher, Affine cipher and the Vigenere cipher. Along with modern encryption like repeating-key XOR and more. For the full list, click here
  • Custom Built Artificial Intelligence with Augmented Search (AuSearch) for answering the question "what encryption was used?" Resulting in decryptions taking less than 3 seconds.
  • Custom built natural language processing module Ciphey can determine whether something is plaintext or not. Whether that plaintext is JSON, a CTF flag, or English, Ciphey can get it in a couple of milliseconds.
  • Multi Language Support at present, only German & English (with AU, UK, CAN, USA variants).
  • Supports encryptions and hashes Which the alternatives such as CyberChef Magic do not.
  • C++ core Blazingly fast.

🔭 Ciphey vs CyberChef

🔁 Base64 Encoded 42 times

Name Ciphey 🐢 CyberChef 🐢
Gif The guy she tells you not to worry about You
Time 2 seconds 6 seconds
Setup
  • Run ciphey on the file
  • Set the regex param to "{"
  • You need to know how many times to recurse
  • You need to know it's Base64 all the way down
  • You need to load CyberChef (it's a bloated JS app)
  • Know enough about CyberChef to create this pipeline
  • Invert the match

Note The gifs may load at different times, so one may appear significantly faster than another.
A note on magic CyberChef's most similar feature to Ciphey is Magic. Magic fails instantly on this input and crashes. The only way we could force CyberChef to compete was to manually define it.

We also tested CyberChef and Ciphey with a 6gb file. Ciphey cracked it in 5 minutes and 54 seconds. CyberChef crashed before it even started.

📊 Ciphey vs Katana vs CyberChef Magic

Name Ciphey 🗡️ Katana 🗡️ 🐢 CyberChef Magic 🐢
Advanced Language Checker
Supports Encryptions
Releases named after Dystopian themes 🌃
Supports hashes
Easy to set up
Can guess what something is encrypted with
Created for hackers by hackers

🎬 Getting Started

If you're having trouble with installing Ciphey, read this.

‼️ Important Links (Docs, Installation guide, Discord Support)

Installation Guide Documentation Discord Docker Image (from REMnux)
📖 Installation Guide 📚 Documentation 🦜 Discord 🐋 Docker Documentation

🏃‍♀️ Running Ciphey

There are 3 ways to run Ciphey.

  1. File Input ciphey -f encrypted.txt
  2. Unqualified input ciphey -- "Encrypted input"
  3. Normal way ciphey -t "Encrypted input"

Gif showing 3 ways to run Ciphey

To get rid of the progress bars, probability table, and all the noise use the quiet mode.

ciphey -t "encrypted text here" -q

For a full list of arguments, run ciphey --help.

⚗️ Importing Ciphey

You can import Ciphey's main and use it in your own programs and code. from Ciphey.__main__ import main

🎪 Contributors

Ciphey was invented by Brandon in 2008, and revived in 2019. Ciphey wouldn't be where it was today without Cyclic3 - president of UoL's Cyber Security Society.

Ciphey was revived & recreated by the Cyber Security Society for use in CTFs. If you're ever in Liverpool, consider giving a talk or sponsoring our events. Email us at [email protected] to find out more 🤠

Major Credit to George H for working out how we could use proper algorithms to speed up the search process. Special thanks to varghalladesign for designing the logo. Check out their other design work!

🐕‍🦺 Contributing

Don't be afraid to contribute! We have many, many things you can do to help out. Each of them labelled and easily explained with examples. If you're trying to contribute but stuck, tag @bee-san or @cyclic3 in the GitHub issue

Alternatively, join the Discord group and send a message there (link in contrib file) or at the top of this README as a badge.

Please read the contributing file for exact details on how to contribute

By doing so, you'll get your name added to the README below and get to be apart of an ever-growing project! Stargazers over time

💰 Financial Contributors

The contributions will be used to fund not only the future of Ciphey and its authors, but also Cyber Security Society at the University of Liverpool.

GitHub doesn't support "sponsor this project and we'll evenly distribute the money", so pick a link and we'll sort it out on our end 🥰

Contributors

Thanks goes to these wonderful people (emoji key):


cyclic3

🎨 🚧 💻 🤔

Brandon

🎨 🚧 💻 🤔

michalani

💻

ashb07

💻

Shardion

🐛

Bryan

🌍 📖

Lukas Gabriel

💻 🐛 🌍 🤔

Darshan

🐛

SkeletalDemise

💻

Christian Clauss

💻 🐛

Machinexa2

🖋

Anant Verma

💻 🐛

XVXTOR

📖

Itamikame

💻

MikeMerz

💻

Jacob Galam

💻 🐛

TuxTheXplorer

🌍

Itamai

💻 🐛

Filipe

🌍

Malathi

💻

Jack

🌍

Younes

🌍

Marnick Vandecauter

🌍

Michael V

💻

chuinzer

🌍

blackcat-917

🌍 📖

Åsmund Brekke

💻

Sashreek Shankar

💻

cryptobadger

💻 🐛

elf

💻

Roger Yu

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Comments
  • No matching distribution found for cipheycore<0.3.0,>=0.2.8 (from ciphey)

    No matching distribution found for cipheycore<0.3.0,>=0.2.8 (from ciphey)

    I reported the following errors when I installed using pip. ERROR: Could not find a version that satisfies the requirement cipheycore<0.3.0,>=0.2.8 (from ciphey) (from versions: 0.0.1, 0.1.0) ERROR: No matching distribution found for cipheycore<0.3.0,>=0.2.8 (from ciphey)

    bug 
    opened by Hermes981128 22
  • Find a good English dictionary for us!

    Find a good English dictionary for us!

    Hello spoooopyyy hackers :jack_o_lantern:

    This is a Hacktoberfest only issue! :ghost:

    This is also data-sciency!

    The Problem

    Our English dictionary contains words that aren't English, and does not contain common English words.

    Examples of non-common words in the dictionary:

    "hlithskjalf",
      "hlorrithi",
      "hlqn",
      "hm",
      "hny",
      "ho",
      "hoactzin",
      "hoactzines",
    

    This is our current dictionary:

    https://github.com/dwyl/english-words

    What we want

    An English dictionary without English words that are horrible, and with common English words in JSON format.

    Ideas on how to achieve this

    You'll likely need to use data science, parse English text (such as books / stories) and find uncommon words to remove them. Also potentially adding more words.

    I'm not the best data scientist in the world, so what you decide will be good.

    You can also publish this work outside of Ciphey, such as in a separate GitHub repository -- so long as Ciphey can use it <3

    While I'm not an expert data scientist, I have studied it -- so if you need help leave a comment :)

    enhancement hacktoberfest 
    opened by bee-san 21
  • fish: 'ciphey' terminated by signal SIGSEGV (Address boundary error)

    fish: 'ciphey' terminated by signal SIGSEGV (Address boundary error)

    SIGSEGV error

    Reproduce: install ciphey using the guide on macos using python3.8.5

    Expected behavior: that it works

    Versions:

    • OS X Catalina
    • Python 3.8.5
    • Ciphey versions: ciphey5.1.0 cipheycore0.2.9 cipheydists0.3.18
    bug 
    opened by Audition-CSBlock 20
  • I would like to translate Docs for this project in Hindi Language

    I would like to translate Docs for this project in Hindi Language

    Hi Ciphey,

    I am Abhishek Verma from India, and my native language is Hindi. I would like to translate your docs in Hindi so, the guys here in India can read and understand your DOCS.

    Please let me know, how I can contribute.

    question 
    opened by w3Abhishek 18
  • macOS, pip install, Could not find cipheycore==0.2.9

    macOS, pip install, Could not find cipheycore==0.2.9

    macOS Mojave 10.14.6

    [10:12 [email protected] at ~/Downloads/Ciphey git:(master) ✗] ➜ python3 --version Python 3.8.5 [10:15 [email protected] at ~/Downloads/Ciphey git:(master) ✗] ➜ python3 -m pip install --upgrade pip Requirement already up-to-date: pip in /usr/local/lib/python3.8/site-packages (20.2.1)

    [10:12 [email protected] at ~/Downloads/Ciphey git:(master) ✗] ➜ pip3 install -r requirements.txt Ignoring atomicwrites: markers 'sys_platform == "win32"' don't match your environment Ignoring importlib-metadata: markers 'python_version < "3.8"' don't match your environment Ignoring mypy-extensions: markers 'python_version >= "3.7" and python_version < "3.8"' don't match your environment Ignoring typing-inspect: markers 'python_version >= "3.7" and python_version < "3.8"' don't match your environment Ignoring win32-setctime: markers 'sys_platform == "win32"' don't match your environment Ignoring zipp: markers 'python_version < "3.8"' don't match your environment Requirement already satisfied: alabaster==0.7.12 in /usr/local/lib/python3.8/site-packages (from -r requirements.txt (line 1)) (0.7.12) Requirement already satisfied: appdirs==1.4.4 in /usr/local/lib/python3.8/site-packages (from -r requirements.txt (line 4)) (1.4.4) Requirement already satisfied: astroid==2.4.2 in /usr/local/lib/python3.8/site-packages (from -r requirements.txt (line 7)) (2.4.2) Requirement already satisfied: attrs==19.3.0 in /usr/local/lib/python3.8/site-packages (from -r requirements.txt (line 13)) (19.3.0) Requirement already satisfied: babel==2.8.0 in /usr/local/lib/python3.8/site-packages (from -r requirements.txt (line 16)) (2.8.0) Requirement already satisfied: base58==2.0.1 in /usr/local/lib/python3.8/site-packages (from -r requirements.txt (line 19)) (2.0.1) Requirement already satisfied: black==19.10b0 in /usr/local/lib/python3.8/site-packages (from -r requirements.txt (line 22)) (19.10b0) Requirement already satisfied: certifi==2020.6.20 in /usr/local/lib/python3.8/site-packages (from -r requirements.txt (line 25)) (2020.6.20) Requirement already satisfied: chardet==3.0.4 in /usr/local/lib/python3.8/site-packages (from -r requirements.txt (line 28)) (3.0.4) ERROR: Could not find a version that satisfies the requirement cipheycore==0.2.9 (from -r requirements.txt (line 31)) (from versions: 0.0.1, 0.1.0) ERROR: No matching distribution found for cipheycore==0.2.9 (from -r requirements.txt (line 31)) [10:17 [email protected] at ~/Downloads/Ciphey git:(master) ✗] ➜ python3 -m pip install ciphey --upgrade Collecting ciphey Using cached ciphey-5.1.0-py3-none-any.whl (51 kB) ERROR: Could not find a version that satisfies the requirement cipheycore<0.3.0,>=0.2.8 (from ciphey) (from versions: 0.0.1, 0.1.0) ERROR: No matching distribution found for cipheycore<0.3.0,>=0.2.8 (from ciphey)

    bug 
    opened by reber0 17
  • Please provide more information on how to install Ciphey

    Please provide more information on how to install Ciphey

    I've been coming back to this page trying to get Ciphey to work over and over and I'm simply not knowledgable enough to get it to work. I downloaded a release of Ciphey, put it in a folder and put it on my desktop, then checked the installation section. It basically tells me to run

    python3 -m pip install -U ciphey

    Okay, so, I downloaded python 3, restarted my pc, and the command doesn't work, turns out, I had to change it to

    python -m pip install -U ciphey

    Because I was upgrading from a previous version of python. Then, I kept getting:

    ERROR: Could not find a version that satisfies the requirement cipheycore<0.2.0,>=0.1.4 (from ciphey) (from versions: 0.0.1, 0.1.0) ERROR: No matching distribution found for cipheycore<0.2.0,>=0.1.4 (from ciphey)

    And, of course, running

    ciphey -t "encrypted text here"

    won't do anything, because it didn't install correctly. So I decided to check out https://docs.ciphey.online/en/latest/ to try and understand what I was doing wrong. The installation page there is completely different, telling me to run

    $ pip3 install ciphey

    Not only does CMD not run like this but it doesn't give me any links as to what pip3 comes from or what I need to run the command to begin with. Running the command returns another error

    ERROR: Could not find a version that satisfies the requirement tensorflow<3.0.0,>=2.1.0 (from ciphey) (from versions: none) ERROR: No matching distribution found for tensorflow<3.0.0,>=2.1.0 (from ciphey)

    Ciphey looks amazing, but for someone like me who basically knows nothing about running python scripts and such, it's a complete maze to get working because of the lack of information. And even worse for someone who doesn't know the basics. Just telling users to "run commands" is a bit.. hollow. For a total noob. So I'm basically forced to admit to being a bit stupid and just ask you guys to provide more information on the installation page for people like me, or to just help me directly.

    documentation question 
    opened by Veeyu22 17
  • Run `ciphey` faild in macOS

    Run `ciphey` faild in macOS

    Describe the bug A clear and concise description of what the bug is. Run ciphey faild in macOS.

    $ ciphey
    [1]    3868 segmentation fault  ciphey
    

    Then python crashed.

    To Reproduce Just run ciphey.

    Expected behavior Run normally.

    Screenshots Screen Shot 2020-08-06 at 6 55 18 PM

    Versions:

    • OS/Distro: macOS Catalina 10.15.6
    • Python version: 3.8.0
    • Ciphey versions:
      • ciphey: 5.1.0
      • cipheycore: 0.2.9
      • cipheydists: 0.3.18

    Additional context macOS promble report in another reply.

    bug 
    opened by Sheey11 15
  • Getting Segmentation fault: 11  when running ciphey

    Getting Segmentation fault: 11 when running ciphey

    ⚠️IMPORTANT⚠️ if you do not fill this out, we will automatically delete your issue. We will not help anyone that cannot fill out this template.

    Describe the bug A clear and concise description of what the bug is. When I run ciphey, I get "Segmentation fault: 11". Note: my plaintext was supposed to be encoded using multiple ciphers and I did pass -p ausearch.enable_nested=True Plaintext ⚠️IMPORTANT⚠️ The below code is non-negotiable for "Ciphey didn't decrypt...." problems. If you do not tell us your plaintext, we will not help you.

    
    GOWOKGFOTRSERRAUVRFFBFCAAWWAWGTWWQGJFMWBTKFTJASFAEZTZWIMDZRYFPZRATMLGFYDROWRBWLXKGQHGQWQXWLKQYCQOMFCUVJFQVFQTUIECCGDKTZVVJEJBG
    

    Version ⚠️IMPORTANT⚠️ We need this information because different environments will induce different bugs in Ciphey

    • OS/Distro: macOS Catalina
    • Python version: 3.8.5
    • Ciphey versions: 5.3.2 0.2.9 0.3.23
    • Did you use Docker? No

    Verbose Output ⚠️IMPORTANT⚠️ Verbose output will tell us why it's not working the way we expected it to be. Run Ciphey with ciphey -vvv and paste the results into Pastebin.com or a GitHub Gist Link to my verbose output To Reproduce Steps to reproduce the behavior:

    1. What input did you use? ciphey -p ausearch.enable_nested=True -t "GOWOKGFOTRSERRAUVRFFBFCAAWWAWGTWWQGJFMWBTKFTJASFAEZTZWIMDZRYFPZRATMLGFYDROWRBWLXKGQHGQWQXWLKQYCQOMFCUVJFQVFQTUIECCGDKTZVVJEJBG"
    2. What flags / arguments did you use? -p ausearch.enable_nested=True -t "GOWOKGFOTRSERRAUVRFFBFCAAWWAWGTWWQGJFMWBTKFTJASFAEZTZWIMDZRYFPZRATMLGFYDROWRBWLXKGQHGQWQXWLKQYCQOMFCUVJFQVFQTUIECCGDKTZVVJEJBG"

    Expected behavior A clear and concise description of what you expected to happen. I expected it to decode my encrypted text. Any other information? Add any other context about the problem here.

    bug 
    opened by JLP04 14
  • Language detection interface

    Language detection interface

    Problem

    Whilst the original language checker is absolutely brilliant, it fails at small ciphertexts, or those with high entropy. An AI solution would be cool, but would be a bit OTT for rigid data structures such as json or CTF flags

    Solution

    We present an interface for defining a custom candidate acceptor:

    class LanguageChecker(ABC):
        @staticmethod
        @abstractmethod
        def getArgs(**kwargs) -> dict: pass
    
        @abstractmethod
        def checkLanguage(self, text: str) -> bool: pass
    
    ciphey_acceptor = LanguageCheckerDerived()
    

    This can be passed as an argument to each cracker. Since a basic chi-squared filtration is applied by the core to the candidates, relatively few should make it through. This allows the is_acceptable function to be a halt condition: if it returns true on any candidate, we stop.

    However, a user shouldn't be expected to write such code for all text, that would be absurd.

    Instead, we provide a few language detection interfaces that can be selected by the user instead of them writing their own. My suggestion would be the following:

    | Name | Args | Description | | - | - | - | | brandon | None | Current system, for long natural text | | neuralnet | path | A neural net for text with deep structure, or smaller text | | regex | regex | A regular expression for very simple structures | | user | None | Prompts the user for each candidate |

    I also put forward the following flags: | Flag| Description | | - | - | | -a <name> | The internal language detector <name> (maybe with a configurable path) | | -A <path> | A python script/module at <path> containing the ciphey_acceptor variable | | -p <param>=<value> | Sets the kwarg <param> to <value> when the is_acceptable method is called |

    enhancement 
    opened by Cyclic3 14
  • Add Braille (Grade 1)

    Add Braille (Grade 1)

    Hello, I added Braille grade 1 feature for issue-439. Not sure how to do grade 2 aka contractions.

    Not sure if I covered everything for grade 1...

    Looking for feedback.

    opened by rogercyyu 11
  • added DNA decoder

    added DNA decoder

    Hi, I have added the logical code to decode DNA sequence into binary, but for some reason, it's not working with ciphey. It shows - "Failed to crack".

    The print statement on line #13 was just an attempt to solve the bug, but couldn't.

    Can you help me with this?

    opened by anantverma275 11
  • Update mock requirement from ^4.0.3 to >=4.0.3,<6.0.0

    Update mock requirement from ^4.0.3 to >=4.0.3,<6.0.0

    Updates the requirements on mock to permit the latest version.

    Changelog

    Sourced from mock's changelog.

    5.0.0

    • gh-98624: Add a mutex to unittest.mock.NonCallableMock to protect concurrent access to mock attributes.

    • bpo-43478: Mocks can no longer be used as the specs for other Mocks. As a result, an already-mocked object cannot have an attribute mocked using autospec=True or be the subject of a create_autospec(...) call. This can uncover bugs in tests since these Mock-derived Mocks will always pass certain tests (e.g. isinstance) and builtin assert functions (e.g. assert_called_once_with) will unconditionally pass.

    • bpo-45156: Fixes infinite loop on :func:unittest.mock.seal of mocks created by :func:~unittest.create_autospec.

    • bpo-41403: Make :meth:mock.patch raise a :exc:TypeError with a relevant error message on invalid arg. Previously it allowed a cryptic :exc:AttributeError to escape.

    • gh-91803: Fix an error when using a method of objects mocked with :func:unittest.mock.create_autospec after it was sealed with :func:unittest.mock.seal function.

    • bpo-41877: AttributeError for suspected misspellings of assertions on mocks are now pointing out that the cause are misspelled assertions and also what to do if the misspelling is actually an intended attribute name. The unittest.mock document is also updated to reflect the current set of recognised misspellings.

    • bpo-43478: Mocks can no longer be provided as the specs for other Mocks. As a result, an already-mocked object cannot be passed to mock.Mock(). This can uncover bugs in tests since these Mock-derived Mocks will always pass certain tests (e.g. isinstance) and builtin assert functions (e.g. assert_called_once_with) will unconditionally pass.

    • bpo-45010: Remove support of special method __div__ in :mod:unittest.mock. It is not used in Python 3.

    • gh-84753: :func:inspect.iscoroutinefunction now properly returns True when an instance of :class:unittest.mock.AsyncMock is passed to it. This makes it consistent with behavior of :func:asyncio.iscoroutinefunction. Patch by Mehdi ABAAKOUK.

    • bpo-46852: Remove the undocumented private float.__set_format__() method, previously known as float.__setformat__() in Python 3.7. Its docstring said: "You probably don't want to use this function. It exists mainly to be used in Python's test suite." Patch by Victor Stinner.

    • gh-98086: Make sure patch.dict() can be applied on async functions.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • ⚠️ Ciphey is being deprecated ⚠️

    ⚠️ Ciphey is being deprecated ⚠️

    Hey 👋🏻

    We are currently in the middle of writing out a new automated decoding tool in Rust called Ares: https://github.com/bee-san/Ares

    As such, we do not have much time to spend on Ciphey 🙇🏻

    We fully intend to replace Ciphey with Ares in the future, but for now Ciphey will stay and some PRs will be merged :)

    Please note that Ares does not support all of the features of Ciphey currently, we recommend using both and if you're really stuck coming to our Discord channel #coded-messages for help! https://discord.gg/MfuMzEVjtK

    maintenance WARNING 
    opened by bee-san 0
  • Add timeout functionality to terminate processes after 60 seconds.

    Add timeout functionality to terminate processes after 60 seconds.

    Patch for #743

    Summary

    Previously, the software was not timing out after a period of inactivity. I have added this functionally using the multiprocessing library. The timeout is currently hard-coded at 60 seconds, but I have added a flag to ciphey.py which can be incorporated.

    TODO

    • Enable --timeout flag in ciphey.py (currently unused).

    This PR is part of my Hacktoberfest contribution.

    opened by gwo0d 1
  • Update pytest-cov requirement from ^3.0.0 to ^4.0.0

    Update pytest-cov requirement from ^3.0.0 to ^4.0.0

    Updates the requirements on pytest-cov to permit the latest version.

    Changelog

    Sourced from pytest-cov's changelog.

    4.0.0 (2022-09-28)

    Note that this release drops support for multiprocessing.

    • --cov-fail-under no longer causes pytest --collect-only to fail Contributed by Zac Hatfield-Dodds in [#511](https://github.com/pytest-dev/pytest-cov/issues/511) <https://github.com/pytest-dev/pytest-cov/pull/511>_.

    • Dropped support for multiprocessing (mostly because issue 82408 <https://github.com/python/cpython/issues/82408>_). This feature was mostly working but very broken in certain scenarios and made the test suite very flaky and slow.

      There is builtin multiprocessing support in coverage and you can migrate to that. All you need is this in your .coveragerc::

      [run] concurrency = multiprocessing parallel = true sigterm = true

    • Fixed deprecation in setup.py by trying to import setuptools before distutils. Contributed by Ben Greiner in [#545](https://github.com/pytest-dev/pytest-cov/issues/545) <https://github.com/pytest-dev/pytest-cov/pull/545>_.

    • Removed undesirable new lines that were displayed while reporting was disabled. Contributed by Delgan in [#540](https://github.com/pytest-dev/pytest-cov/issues/540) <https://github.com/pytest-dev/pytest-cov/pull/540>_.

    • Documentation fixes. Contributed by Andre Brisco in [#543](https://github.com/pytest-dev/pytest-cov/issues/543) <https://github.com/pytest-dev/pytest-cov/pull/543>_ and Colin O'Dell in [#525](https://github.com/pytest-dev/pytest-cov/issues/525) <https://github.com/pytest-dev/pytest-cov/pull/525>_.

    • Added support for LCOV output format via --cov-report=lcov. Only works with coverage 6.3+. Contributed by Christian Fetzer in [#536](https://github.com/pytest-dev/pytest-cov/issues/536) <https://github.com/pytest-dev/pytest-cov/issues/536>_.

    • Modernized pytest hook implementation. Contributed by Bruno Oliveira in [#549](https://github.com/pytest-dev/pytest-cov/issues/549) <https://github.com/pytest-dev/pytest-cov/pull/549>_ and Ronny Pfannschmidt in [#550](https://github.com/pytest-dev/pytest-cov/issues/550) <https://github.com/pytest-dev/pytest-cov/pull/550>_.

    3.0.0 (2021-10-04)

    Note that this release drops support for Python 2.7 and Python 3.5.

    • Added support for Python 3.10 and updated various test dependencies. Contributed by Hugo van Kemenade in [#500](https://github.com/pytest-dev/pytest-cov/issues/500) <https://github.com/pytest-dev/pytest-cov/pull/500>_.
    • Switched from Travis CI to GitHub Actions. Contributed by Hugo van Kemenade in [#494](https://github.com/pytest-dev/pytest-cov/issues/494) <https://github.com/pytest-dev/pytest-cov/pull/494>_ and [#495](https://github.com/pytest-dev/pytest-cov/issues/495) <https://github.com/pytest-dev/pytest-cov/pull/495>_.
    • Add a --cov-reset CLI option. Contributed by Danilo Šegan in [#459](https://github.com/pytest-dev/pytest-cov/issues/459) <https://github.com/pytest-dev/pytest-cov/pull/459>_.
    • Improved validation of --cov-fail-under CLI option. Contributed by ... Ronny Pfannschmidt's desire for skark in [#480](https://github.com/pytest-dev/pytest-cov/issues/480) <https://github.com/pytest-dev/pytest-cov/pull/480>_.
    • Dropped Python 2.7 support.

    ... (truncated)

    Commits
    • 28db055 Bump version: 3.0.0 → 4.0.0
    • 57e9354 Really update the changelog.
    • 56b810b Update chagelog.
    • f7fced5 Add support for LCOV output
    • 1211d31 Fix flake8 error
    • b077753 Use modern approach to specify hook options
    • 00713b3 removed incorrect docs on data_file.
    • b3dda36 Improve workflow with a collecting status check. (#548)
    • 218419f Prevent undesirable new lines to be displayed when report is disabled
    • 60b73ec migrate build command from distutils to setuptools
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Update typing-inspect requirement from >=0.6,<0.8 to >=0.6,<0.9

    Update typing-inspect requirement from >=0.6,<0.8 to >=0.6,<0.9

    Updates the requirements on typing-inspect to permit the latest version.

    Commits
    • 96faa26 Bump version
    • 0f45982 Add support for UnionType in get_args (#87)
    • f052816 Fix TypedDict on new Python and typing_extensions (#86)
    • 462c704 Try fixing 3.10
    • 26c32dc Run tests also on Python 3.10
    • 768e931 Make get_origin(Literal[...]) == Literal. (#80)
    • 93044c1 Fix tests suite on Python 3.5.{0,1}. (#85)
    • c6adf81 Support PEP 604 unions, types.UnionType (#83)
    • 8f6aa20 Making the is_new_type check more robust then just checking supertype exi...
    • 01f1b91 Require newer typing-extensions (#76)
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(5.14.0)
  • 5.14.0(Jun 6, 2021)

    What’s Changed

    • Updated __main__ to be smarter (#652) @bee-san
    • Added linking & description to Cipheys pywhat (#645) @bee-san
    • Add click tests & fix greppable bug with pywhat (#654) @bee-san
    • Update pywhat requirement from >=0.2.5,<1.1.0 to >=0.2.5,<1.2.0 (#650) @dependabot
    • Remove unnecessary newline (#649) @swanandx
    • Update pywhat requirement from ^0.2.5 to >=0.2.5,<1.1.0 (#647) @dependabot
    • Remove yaspin and replace it with Rich (#638) @bee-san
    Source code(tar.gz)
    Source code(zip)
  • 5.13.0(May 23, 2021)

    What’s Changed

    • Clean up colours and make Ciphey more friendly (#633) @bee-san Ciphey now actually looks ✨ Cool! ✨
      image
    • General bugs / cleanup, the usual'
    Source code(tar.gz)
    Source code(zip)
  • 5.12.1(May 22, 2021)

  • 5.12.0(May 21, 2021)

    What’s Changed

    • Added new checker and general cleanup (#619) @bee-san

    This is our all-purpose regex checker! Ciphey can now detect:

    • IP addresses
    • Email addresses
    • Domains
    • Crypto-wallets and much, much more!

    Check out PyWhat, which powers this here: https://github.com/bee-san/pyWhat

    • Create config.yml to disallow blank issues (#599) @bee-san
    • Made Cipheys output more friendly and fixed the what bug
    Source code(tar.gz)
    Source code(zip)
  • 5.11.2(May 21, 2021)

    What’s Changed

    • docs: add mohzulfikar as a contributor (#618) @allcontributors
    • Fix docker hub link (#617) @mohzulfikar
    • Update click requirement from ^7.1.2 to >=7.1.2,<9.0.0 (#614) @dependabot
    • Revert "Bee fix ausearch" (#613) @bee-san
    • Update sphinx requirement from ^3.4.1 to ^4.0.0 (#611) @dependabot
    • Update black requirement from ^20.8b1 to ^21.4b2 (#609) @dependabot-preview
    • Upgrade to GitHub-native Dependabot (#610) @dependabot-preview
    • Bee fix ausearch (#603) @bee-san
    • Broken badge (#596) @bee-san
    • Update yaspin requirement from >=0.17,<1.5 to >=0.17,<1.6 (#592) @dependabot-preview
    • Update rich requirement from >=4,<10 to >=4,<11 (#595) @dependabot-preview
    • docs: add JesseEmond as a contributor (#589) @allcontributors
    Source code(tar.gz)
    Source code(zip)
  • 5.11.1(Feb 28, 2021)

    What’s Changed

    • Support Python 3.9 (Fix #558) (#586) @JesseEmond
    • Update yaspin requirement from >=0.17,<1.4 to >=0.17,<1.5 (#588) @dependabot-preview
    • Add MacPorts Installation Guide (#585) @harens
    • Update yaspin requirement from >=0.17,<1.3 to >=0.17,<1.4 (#578) @dependabot-preview
    • Fix critical error (#553) @SkeletalDemise
    • Remove requirements and safety (#576) @bee-san
    • Bump pygments from 2.7.2 to 2.7.3 (#557) @dependabot-preview
    • Bump certifi from 2020.11.8 to 2020.12.5 (#555) @dependabot-preview
    • Bump tqdm from 4.54.0 to 4.54.1 (#554) @dependabot-preview
    Source code(tar.gz)
    Source code(zip)
  • 5.11.0(Dec 2, 2020)

    Features

    • Add Braille (Grade 1) (#462) @rogercyyu
    • Add Gzip (#520) @SkeletalDemise

    Maintenance

    • Bump packaging from 20.5 to 20.7 (#552) @dependabot-preview

    • Bump lazy-object-proxy from 1.4.3 to 1.5.2 (#551) @dependabot-preview

    • Bump packaging from 20.4 to 20.5 (#550) @dependabot-preview

    • Bump tqdm from 4.53.0 to 4.54.0 (#549) @dependabot-preview

    • docs: add rogercyyu as a contributor (#546) @allcontributors

    • docs: add e1fy as a contributor (#527) @allcontributors

    • Bump tqdm from 4.52.0 to 4.53.0 (#545) @dependabot-preview

    • Bump tqdm from 4.51.0 to 4.52.0 (#542) @dependabot-preview

    • Bump urllib3 from 1.25.11 to 1.26.2 (#540) @dependabot-preview

    • Bump regex from 2020.10.28 to 2020.11.13 (#539) @dependabot-preview

    • Bump babel from 2.8.0 to 2.9.0 (#538) @dependabot-preview

    • Bump requests from 2.24.0 to 2.25.0 (#536) @dependabot-preview

    • Bump certifi from 2020.6.20 to 2020.11.8 (#532) @dependabot-preview

    • Bump pathspec from 0.8.0 to 0.8.1 (#531) @dependabot-preview

    • Bump attrs from 20.2.0 to 20.3.0 (#529) @dependabot-preview

    • Bump pytz from 2020.1 to 2020.4 (#525) @dependabot-preview

    • Bump toml from 0.10.1 to 0.10.2 (#524) @dependabot-preview

    • Bump regex from 2020.10.23 to 2020.10.28 (#523) @dependabot-preview

    • docs: add blackcat-917 as a contributor (#522) @allcontributors

    • Improved READMEs (#521) @blackcat-917

    • Code cleanup (#510) @SkeletalDemise

    • Bump pygments from 2.7.1 to 2.7.2 (#517) @dependabot-preview

    • Bump tqdm from 4.50.2 to 4.51.0 (#516) @dependabot-preview

    • Bump regex from 2020.10.15 to 2020.10.23 (#513) @dependabot-preview

    Bugs

    • Revert changes (#547) @SkeletalDemise
    • Fixed some stuff with ausearch and bases (#528) @Cyclic3
    • fix can't exit ciphey (#526) @e1fy
    Source code(tar.gz)
    Source code(zip)
  • 5.10.0(Oct 24, 2020)

    Features

    • Add Soundex Cracker (#495) @sashreek1
    • Add Baconian (#493) @SkeletalDemise

    Maintenance

    • Update README.md (#505) @bee-san
    • Update yaspin requirement from >=0.17,<1.2 to >=0.17,<1.3 (#509) @dependabot-preview
    • Bump urllib3 from 1.25.10 to 1.25.11 (#507) @dependabot-preview
    • Update rich requirement from >=4,<9 to >=4,<10 (#506) @dependabot-preview
    • Bump regex from 2020.10.11 to 2020.10.15 (#504) @dependabot-preview
    • docs: add cryptobadger as a contributor (#503) @allcontributors
    • Bump iniconfig from 1.0.1 to 1.1.1 (#502) @dependabot-preview
    • docs: add sashreek1 as a contributor (#500) @allcontributors
    • docs: add Ozzyz as a contributor (#498) @allcontributors
    • Bump isort from 5.6.3 to 5.6.4 (#497) @dependabot-preview
    • Bump colorama from 0.4.3 to 0.4.4 (#496) @dependabot-preview
    • Bump regex from 2020.9.27 to 2020.10.11 (#492) @dependabot-preview
    • Bump isort from 5.6.2 to 5.6.3 (#491) @dependabot-preview

    Bug

    • Fix issue #262 - 'x' surrounded by letters in Galactic Alphabet Decoder (#501) @cryptobadger
    Source code(tar.gz)
    Source code(zip)
  • 5.9.0(Oct 11, 2020)

    Features

    • Add Affine Cracker (#483) @Ozzyz
    • Add UUencode (#467) @malathit
    • Add ASCII shift (#478) @SkeletalDemise
    • Add ROT47 (#477) @Cyclic3

    Maintenance

    • Added CODE_OF_CONDUCT.md translation and fixed some things (#488) @blackcat-917
    • Bump tqdm from 4.50.0 to 4.50.2 (#486) @dependabot-preview
    • Bump isort from 5.5.4 to 5.6.1 (#487) @dependabot-preview
    • docs: add blackcat-917 as a contributor (#485) @allcontributors
    • readme/zh: fix links and adjust some words (#482) @imba-tjd
    • Bump win32-setctime from 1.0.2 to 1.0.3 (#480) @dependabot-preview
    • Added italian translation (#479) @blackcat-917

    Bugs

    No commits were made that specifically squashed bugs. Instead I assume bugs were squashed in other commits.

    Source code(tar.gz)
    Source code(zip)
  • 5.8.0(Oct 4, 2020)

    Features

    • Add Brainfuck interpreter (#470) @mav8557
    • Add Tap Code Decoder (#458) @Itamai

    Maintenance

    • Add Chinese translation (#461) @chuinzer
    • docs: add chuinzer as a contributor (#473) @allcontributors
    • docs: add mav8557 as a contributor (#471) @allcontributors
    • Update rich requirement from >=4,<8 to >=4,<9 (#469) @dependabot-preview
    • Bump joblib from 0.16.0 to 0.17.0 (#466) @dependabot-preview
    • docs: add Marnick39 as a contributor (#460) @allcontributors
    • Add Dutch documentation (#457) @Marnick39
    • Updated version nums (#459) @bee-san
    • add french translation of the README file (#447) @yafkari
    • Bump isort from 5.5.3 to 5.5.4 (#456) @dependabot-preview
    • docs: add jacobggman as a contributor (#455) @allcontributors
    • Small improvements to the code base (#454) @jacobggman
    • Fixed Broken Link on RU translation (#453) @HexChaos
    • docs: add yafkari as a contributor (#452) @allcontributors
    • Add Russian Translation Link (#451) @HexChaos
    • Russian Translation (#443) @HexChaos
    • docs: add HexChaos as a contributor (#450) @allcontributors
    • docs: add malathit as a contributor (#449) @allcontributors
    • Option to go to portuguese version was with the wrong link (#445) @Termack
    • Terminal test for Ciphey (#446) @malathit
    • docs: add Termack as a contributor (#444) @allcontributors
    • Pt br translate (#442) @Termack
    • Object is not subscriptable error fix (#440) @Itamai
    • docs: add Itamai as a contributor (#441) @allcontributors

    Bug Fixes

    • Fixed Russian Translation Link (#464) @HexChaos
    • Grammar fix for Features (#468) @NinjaJc01
    Source code(tar.gz)
    Source code(zip)
  • 5.7.0(Sep 30, 2020)

    Features

    • Add A1Z26 (#431) @SkeletalDemise
    • Add DTMF (#428) @SkeletalDemise
    • Add Base65536 (#427) @SkeletalDemise

    Maintenance

    • Change all old documentation links to new ones (#425) @SkeletalDemise
    • Hungarian Translation (#419) @TuxTheXplorer
    • Bump isort from 5.5.2 to 5.5.3 (#421) @dependabot-preview
    • docs: add TuxTheXplorer as a contributor (#420) @allcontributors
    • Bump tqdm from 4.49.0 to 4.50.0 (#434) @dependabot-preview
    • Bump regex from 2020.7.14 to 2020.9.27 (#430) @dependabot-preview
    • Bump greenlet from 0.4.16 to 0.4.17 (#426) @dependabot-preview
    • Update rich requirement from >=4,<7 to >=4,<8 (#418) @dependabot-preview
    • Bump pygments from 2.7.0 to 2.7.1 (#416) @dependabot-preview

    Bug Fixes

    • Fixed gif link in HU translation (#423) @TuxTheXplorer
    Source code(tar.gz)
    Source code(zip)
  • 5.6.0(Sep 17, 2020)

    Features

    • Added multitap decoder (#340) (#414)
    • Added URL decoding (#400)
    • added Baudot ITA2 decoder (#399)
    • Add DNA codon (#391)

    Maintenance

    • Bump pynvim from 0.4.1 to 0.4.2 (#411)
    • docs: add MikeMerz as a contributor (#414)
    • Bump coverage from 5.2.1 to 5.3 (#409)
    • Bump isort from 5.5.1 to 5.5.2 (#402)
    • Bump tqdm from 4.48.2 to 4.49.0 (#408)
    • Bump pygments from 2.6.1 to 2.7.0 (#407)
    • Update pytest requirement from ^5.4.3 to ^6.0.2 (#406)
    • docs: add Itamikame as a contributor (#401)
    • Update pyproject.toml (#403)

    Bugs

    • Fixed morse (#405)
    Source code(tar.gz)
    Source code(zip)
  • 5.5.2(Sep 9, 2020)

  • 5.5.1(Sep 9, 2020)

    Features

    • Add Base64 URL (#384)

    Maintenance

    • Add support for Nullcipher-like inputs (i.e. NATO Alphabet) (#336)
    • Added templates for new checkers (#393) @bee-san

    Fixed Bugs

    • Fixed byte typing (#385)
    • Generate Poetry's requirements.txt (#383)
    • Made checkers polymorphic (#382)
    • Input causes infinite loop; Percent signs in input cause issues (#282)
    • Ciphey returns plaintext for all decimal based input (#389)
    Source code(tar.gz)
    Source code(zip)
  • 5.5.0(Sep 7, 2020)

    Features

    • Added human checker and spinner pause handle (#374)

    Now when Ciphey finds plaintext, by default, it will ask you if the plaintext is actually the plaintext. The best plaintext checker is humans, after all!

    This opens up a wide variety of new checkers. Right now we are building specific checkers (JSON, English, Regex).

    So we had high accuracy, but low generality. We could only spot these specific things.

    By introducing the Human Check, we can now build lower accuracy but higher generality checks. Things like:

    • Entropy (to find order in text)
    • Chi Squared (technically g-test) to match freq distributions with an expected distribution.

    By combining these two approaches and using the Human Checker, Ciphey should be able to present to the human the plaintext most of the time without missing it.

    Learn to disable this here: https://github.com/Ciphey/Ciphey/wiki/Common-things-you-may-want-to-do#how-do-i-disable-the-human-checker

    Learn more about our checkers here: https://github.com/Ciphey/Ciphey/wiki/Checkers,-explained

    Maintenance

    • docs: add anantverma275 as a contributor (#372)
    • remove codacy badge (#379)
    • Fix readme (#378)

    Bugs

    :beetle:

    Source code(tar.gz)
    Source code(zip)
  • 5.4.0(Sep 7, 2020)

    Features

    • Added XOR #333
    • Added repeating-key XOR (this is our first modern day cipher) #333
    • Added Base58 Flickr (release candidate, not turned on in code yet) #361
    • Added Z85 (release candidate, not turned on in code yet) #361
    • Added Base69 decoder #315
    • Added Decimal decoder #334

    Maintenance

    • Added code quality badge (#371)
    • docs: add machinexa2 as a contributor (#366)
    • grammar (#365)
    • updated readme (#358)
    • Added releasing drafting (#341)

    Bugs

    Fixed some bugs that we forgot to write down.... :sweat_smile:

    Source code(tar.gz)
    Source code(zip)
  • v5.3.3(Sep 5, 2020)

  • 5.3.2(Aug 30, 2020)

  • 5.3.1(Aug 29, 2020)

  • 5.3.0(Aug 26, 2020)

    Features

    • Added Base58 #297
    • Added Base62 #297
    • Added Base58 with Ripple charset #297
    • Added Atbash (enCiphey) #283
    • Added SGA encoder (enCiphey) #283
    • Added XY cipher (enCiphey) #283

    Maintenance

    • Fixed casting for p values #290

    Bugs

    • Fixed #291
    • Fixed invalid JSON #288
    Source code(tar.gz)
    Source code(zip)
  • 5.2.0(Aug 12, 2020)

    Features

    • Added X&Y cipher
    • Added Standard Galactic Language (Minecraft Enchanting Table)

    Maintenance

    • Stopped using Git LFS as we ran over the limit
    • Cleaned up docs so more can add ciphers
    • Added translations of README
    • Made Docker

    Bugs

    • Fixed bug where colour was printed
    • Saved my dying peace lilly
    Source code(tar.gz)
    Source code(zip)
  • 5.1.0(Aug 5, 2020)

    Features

    • Added Atbash cipher #249

    Maintenance

    • Fixed some CipheyCore issues
    • Improved general stability of program

    Bugs

    • Fixed bug where language checker didn't strip newlines when checking for words.
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(Aug 1, 2020)

    This is the first release of Ciphey. if you believe otherwise, the Ministry of Truth will know

    This release is the first commit for Ciphey. Before this, we exchanged code via Google Docs. Which is a great version control system that allows multiple contributors at once.

    Features

    • Vigenere is now enabled, due to massive performance gains from the C++ core
    • Pytest can now be run over the entire program, from main to the output. This means we can crate tests that test the whole of Ciphey, not just small unit tests.
    • Better input handling. Ciphey now supports pipes echo 'hello' | ciphey - and text with no arguments ciphey 'hello'

    Bug Fixes

    • Chi-squared calcuations are now done correctly
    • Fixed bug where main didn't return the output.
    • Multiple debug statements were printed when not in debug mode.
    • Morse Code now has a more complete alphabet.
    • Morse code now doesn't fail on letters that cannot be translated to Morse.
    • Fixed a bug where if any of the inputs were a certain size, it got classed as a hash and bypassed language checker despite it not being English.

    Maintenance

    • Offloaded lots of stuff onto C++ core to get much speed
    • Disabled summing of language checkers, as no-one could explain why it would make sense
    • Bases.py is refactored so users can manually call decryptions. The name has also changed from base64 to bases.
    • LanguageChecker now follows PEP8.
    • Main and MathsHelper now follow PEP8.
    • Now uses Nox to Pytest against multple Python versions (3.6, 3.7, and 3.8).
    • Code coverage is now calculated and used.
    • Automatic application of Black formatter upon push.
    • Automatic uploading to PyPi testing.
    • Saftey, which checks for security issues, is now run with Nox.
    • Automatic uploding to Test PyPi and PyPi upon push to master, and GitHub release respectively.
    • We now use verbosity levels -v, -vv, -vvv instead of --debug, --trace etc.
    • Switched from ArgParser to Click
    • Click now safely opens files
    • Click now creates OS friendly file paths from arguments
    • Click now supports unqualified paths
    • Click now supports UNIX style file opening ciphey - file.txt
    • Added more Gifs to README
    • Created an installation guide on the documentation
    • Created a "how does it work" section on the documentation
    • Brought ciphey.online to be used for the website, and created the repo cipheyOnline
    • Created discord.ciphey.online to link to our Discord
    • Discord links & Documentation links are now plastered everywhere, so users should always be able to find support.
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0rc4(Jul 12, 2020)

  • v5.0.0-rc2(Jul 9, 2020)

  • v5.0.0-rc1(Jul 9, 2020)

  • 4.2.0(Jun 10, 2020)

    Features

    • Vigenere is now enabled, due to massive performance gains from the C++ core
    • Pytest can now be run over the entire program, from main to the output. This means we can create tests that test the whole of Ciphey, not just small unit tests.
    • Better input handling. Ciphey now supports pipes echo 'hello' | ciphey and text with no arguments ciphey 'hello'.

    Bug Fixes

    • Chi-squared calcuations are now done correctly
    • Fixed bug where main didn't return the output.
    • Multiple debug statements were printed when not in debug mode.
    • Morse Code now has a more complete alphabet.
    • Morse code now doesn't fail on letters that cannot be translated to Morse.
    • Fixed a bug where if any of the inputs were a certain size, it got classed as a hash and bypassed language checker despite it not being English.

    Maintenance

    • Offloaded lots of stuff onto C++ core to get much speed
    • Disabled addition of language checkers, as no-one could explain why it would make sense
    • Bases.py is refactored so users can manually call decryptions. The name has also changed from base64 to bases.
    • LanguageChecker now follows PEP8.
    • Main and MathsHelper now follow PEP8.
    • Now uses Nox to Pytest against multiple Python versions (3.6, 3.7, and 3.8).
    • Code coverage is now calculated and used.
    • Automatic application of Black formatter upon push.
    • Automatic uploading to PyPi testing.
    • Saftey, which checks for security issues, is now run with Nox.
    • Automatic uploading to Test PyPi and PyPi upon push to master, and GitHub release respectively.
    • PEP8'd the code
    • Moved to Poetry
    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(Jun 2, 2020)

    Now featuring:

    • C++ core that makes tedious stuff faster!
    • Statistics from a mathematician!
    • Consistent versions!
    • Questionable speed/reliability tradeoffs!
    Source code(tar.gz)
    Source code(zip)
Pre-Training with Whole Word Masking for Chinese BERT

Pre-Training with Whole Word Masking for Chinese BERT

Yiming Cui 7.7k Dec 31, 2022
Develop open-source Python Arabic NLP libraries that the Arab world will easily use in all Natural Language Processing applications

Develop open-source Python Arabic NLP libraries that the Arab world will easily use in all Natural Language Processing applications

BADER ALABDAN 2 Oct 22, 2022
source code for paper: WhiteningBERT: An Easy Unsupervised Sentence Embedding Approach.

WhiteningBERT Source code and data for paper WhiteningBERT: An Easy Unsupervised Sentence Embedding Approach. Preparation git clone https://github.com

49 Dec 17, 2022
🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.

English | 简体中文 | 繁體中文 | 한국어 State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow 🤗 Transformers provides thousands of pretrained models

Hugging Face 77.1k Dec 31, 2022
iSTFTNet : Fast and Lightweight Mel-spectrogram Vocoder Incorporating Inverse Short-time Fourier Transform

iSTFTNet : Fast and Lightweight Mel-spectrogram Vocoder Incorporating Inverse Short-time Fourier Transform This repo try to implement iSTFTNet : Fast

Rishikesh (ऋषिकेश) 126 Jan 02, 2023
Poetry PEP 517 Build Backend & Core Utilities

Poetry Core A PEP 517 build backend implementation developed for Poetry. This project is intended to be a light weight, fully compliant, self-containe

Poetry 293 Jan 02, 2023
NLPShala , the best IDE for all Natural language processing tasks.

The revolutionary IDE for all NLP (Natural language processing) stuffs on the internet.

Abhi 3 Aug 08, 2021
SentAugment is a data augmentation technique for semi-supervised learning in NLP.

SentAugment SentAugment is a data augmentation technique for semi-supervised learning in NLP. It uses state-of-the-art sentence embeddings to structur

Meta Research 363 Dec 30, 2022
Predict the spans of toxic posts that were responsible for the toxic label of the posts

toxic-spans-detection An attempt at the SemEval 2021 Task 5: Toxic Spans Detection. The Toxic Spans Detection task of SemEval2021 required participant

Ilias Antonopoulos 3 Jul 24, 2022
1 Jun 28, 2022
Open Source Neural Machine Translation in PyTorch

OpenNMT-py: Open-Source Neural Machine Translation OpenNMT-py is the PyTorch version of the OpenNMT project, an open-source (MIT) neural machine trans

OpenNMT 5.8k Jan 04, 2023
A Japanese tokenizer based on recurrent neural networks

Nagisa is a python module for Japanese word segmentation/POS-tagging. It is designed to be a simple and easy-to-use tool. This tool has the following

325 Jan 05, 2023
Python utility library for compositing PDF documents with reportlab.

pdfdoc-py Python utility library for compositing PDF documents with reportlab. Installation The pdfdoc-py package can be installed directly from the s

Michael Gale 1 Jan 06, 2022
auto_code_complete is a auto word-completetion program which allows you to customize it on your need

auto_code_complete v1.3 purpose and usage auto_code_complete is a auto word-completetion program which allows you to customize it on your needs. the m

RUO 2 Feb 22, 2022
BeautyNet is an AI powered model which can tell you whether you're beautiful or not.

BeautyNet BeautyNet is an AI powered model which can tell you whether you're beautiful or not. Download Dataset from here:https://www.kaggle.com/gpios

Ansh Gupta 0 May 06, 2022
Universal End2End Training Platform, including pre-training, classification tasks, machine translation, and etc.

背景 安装教程 快速上手 (一)预训练模型 (二)机器翻译 (三)文本分类 TenTrans 进阶 1. 多语言机器翻译 2. 跨语言预训练 背景 TrenTrans是一个统一的端到端的多语言多任务预训练平台,支持多种预训练方式,以及序列生成和自然语言理解任务。 安装教程 git clone git

Tencent Minority-Mandarin Translation Team 42 Dec 20, 2022
CoNLL-English NER Task (NER in English)

CoNLL-English NER Task en | ch Motivation Course Project review the pytorch framework and sequence-labeling task practice using the transformers of Hu

Kevin 2 Jan 14, 2022
A simple visual front end to the Maya UE4 RBF plugin delivered with MetaHumans

poseWrangler Overview PoseWrangler is a simple UI to create and edit pose-driven relationships in Maya using the MayaUE4RBF plugin. This plugin is dis

Christopher Evans 105 Dec 18, 2022
Library for Russian imprecise rhymes generation

TOM RHYMER Library for Russian imprecise rhymes generation. Quick Start Generate rhymes by any given rhyme scheme (aabb, abab, aaccbb, etc ...): from

Alexey Karnachev 6 Oct 18, 2022
Learning Spatio-Temporal Transformer for Visual Tracking

STARK The official implementation of the paper Learning Spatio-Temporal Transformer for Visual Tracking Highlights The strongest performances Tracker

Multimedia Research 485 Jan 04, 2023