From 3f11e573cfd0340d450482f5e39b79168e8e5f48 Mon Sep 17 00:00:00 2001 From: Reilly Tucker Siemens Date: Sun, 15 Mar 2020 04:01:56 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 30 ++++ .gitignore | 143 +++++++++++++++++ CHANGELOG.rst | 10 ++ CODE_OF_CONDUCT.rst | 140 +++++++++++++++++ CONTRIBUTING.rst | 151 ++++++++++++++++++ LICENSE | 15 ++ README.rst | 19 +++ docs/changelog.rst | 3 + docs/code-of-conduct.rst | 3 + docs/conf.py | 72 +++++++++ docs/contributing.rst | 3 + docs/index.rst | 33 ++++ docs/static/ipython-style-gruvbox.png | Bin 0 -> 154393 bytes gruvbox.py | 108 +++++++++++++ poetry.lock | 211 ++++++++++++++++++++++++++ pyproject.toml | 87 +++++++++++ tests/test_gruvbox.py | 140 +++++++++++++++++ 17 files changed, 1168 insertions(+) create mode 100644 .github/workflows/test.yml create mode 100644 .gitignore create mode 100644 CHANGELOG.rst create mode 100644 CODE_OF_CONDUCT.rst create mode 100644 CONTRIBUTING.rst create mode 100644 LICENSE create mode 100644 README.rst create mode 100644 docs/changelog.rst create mode 100644 docs/code-of-conduct.rst create mode 100644 docs/conf.py create mode 100644 docs/contributing.rst create mode 100644 docs/index.rst create mode 100644 docs/static/ipython-style-gruvbox.png create mode 100644 gruvbox.py create mode 100644 poetry.lock create mode 100644 pyproject.toml create mode 100644 tests/test_gruvbox.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..2a818e0 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,30 @@ +name: Tests +on: [push, pull_request] +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.8 + uses: actions/setup-python@v1 + with: + python-version: 3.8 + - name: Install and set up Poetry + run: | + curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python + source $HOME/.poetry/env + poetry config virtualenvs.in-project true + - name: Install dependencies + run: | + source $HOME/.poetry/env + poetry install + - name: Test + run: | + source $HOME/.poetry/env + poetry run tox -q --parallel=auto + - name: Post code coverage results + env: + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + run: | + pip install 'coveralls<2' + coveralls diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d82fa7a --- /dev/null +++ b/.gitignore @@ -0,0 +1,143 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# static files generated from Django application using `collectstatic` +media +static diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 0000000..00c269b --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,10 @@ +Changelog +========= + +All notable changes to this project will be documented here. This changelog +follows the conventions of `keepachangelog.com `_. + +Contributors +~~~~~~~~~~~~ + +- Tucker Siemens (`@reillysiemens `_) diff --git a/CODE_OF_CONDUCT.rst b/CODE_OF_CONDUCT.rst new file mode 100644 index 0000000..48f5514 --- /dev/null +++ b/CODE_OF_CONDUCT.rst @@ -0,0 +1,140 @@ +Contributor Covenant Code of Conduct +==================================== + +Our Pledge +---------- + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +Our Standards +------------- + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +Enforcement Responsibilities +---------------------------- + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for +moderation decisions when appropriate. + +Scope +----- + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +Enforcement +----------- + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement via email. All +complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +Enforcement Guidelines +---------------------- + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +1. Correction +~~~~~~~~~~~~~ + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +2. Warning +~~~~~~~~~~ + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +3. Temporary Ban +~~~~~~~~~~~~~~~~ + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +4. Permanent Ban +~~~~~~~~~~~~~~~~ + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +Attribution +----------- + +This Code of Conduct is adapted from the `Contributor Covenant`_, version 2.0, +available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by +`Mozilla's code of conduct enforcement ladder`_. + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. + +.. _Contributor Covenant: https://www.contributor-covenant.org +.. _Mozilla's code of conduct enforcement ladder: https://github.com/mozilla/diversity diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 0000000..69c5441 --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,151 @@ +Contributing Guidelines +======================= + +Please follow these guidelines for contributing to this project. + +Repository Management +--------------------- + +- Fork this project into your own repository. +- Follow the `version control`_ guidelines. +- No changes should reach the ``master`` branch except by way of a + `pull request`_. + +Submitting Issues +~~~~~~~~~~~~~~~~~ + +`Create an issue`_ to report bugs or request enhancements. Better yet, you're +encouraged to fix the problem yourself and submit a `pull request`_. + +Bug Reports ++++++++++++ + +When reporting a bug, please provide the steps to reproduce the problem and any +details that could be important such as whether this is the first time this has +happened or whether others are experiencing it. + +Pull Requests ++++++++++++++ + +Pull requests must remain focused on fixing or addressing one thing (see +`topic branch`_ model). Make sure your pull request contains a clear title and +description. Test coverage should not drop as a result. If you add code, you +add tests. + +Be sure to follow the guidelines on `writing code`_ if you want your work +considered for inclusion. + +Handling Pull Requests +~~~~~~~~~~~~~~~~~~~~~~ + +- Pull requests **must** include: + + - Title describing the change + - Description explaining the change in detail + - Tests + +- A maintainer will respond to Pull Requests with one of: + + - 'Ship It', 'LGTM', 🚢, or some other affirmation + - What must be changed + - Won't accept and why + +Nota Bene ++++++++++ + +- Submitting a `draft pull request`_ is a good way to get feedback from + maintainers if you are unsure of the changes you are making. +- A pull request that has been approved may not be merged immediately. +- You may be asked to rebase or squash your commits to keep an orderly version + control history. + +.. _version control: + +Using Version Control +~~~~~~~~~~~~~~~~~~~~~ + +- `Fork`_ the `central repository`_ and work from a clone of your own fork. +- Follow the `topic branch`_ model and submit pull requests from branches named + according to their purpose. +- Review the `GitHub Flow`_ documentation and, in general, try to stick to the + principles outlined there. + +.. _writing code: + +Writing Code +------------ + +Writing code is a creative process and there will always be exceptions to the +rules, but it's good to maintain certain standards. In general, please follow +these code conventions. + +Coding Style +~~~~~~~~~~~~ + +- Code in this project **must** be formatted with `black`_. +- Code in this project **must** be linted with `flake8`_. +- Try to follow :pep:`8` guidelines. +- Try to respect the style of existing code. + +Coding style checks are bundled into the static analysis automation in this +repository's `tox`_ configuration. To validate your coding style run + +.. code-block:: sh + + tox -e static + +Test Environment +~~~~~~~~~~~~~~~~ + +- Code **must** be tested. Write or update related unit tests so you don't have + to manually retest the same thing many times. +- Tests for this project are written using the `pytest`_ framework and executed + via `tox`_. While it isn't always achievable this project strives to maintain + 💯% test coverage. +- In addition to unit testing code in this project is statically type checked + using `mypy`_, formatted with `black`_, linted using `flake8`_, and security + checked with `bandit`_. + +Here are some example invocations for running unit tests/static analysis. + +.. code-block:: sh + + tox # Build and test the project + tox -e py39 # in a specific environment + tox -e py39 -- --pdb # with extra options, + # or + tox -e py39 --devenv venv # create a development environment + venv/bin/python -V # and call scripts/binaries in it. + +Documentation +~~~~~~~~~~~~~ + +- Public interfaces **must** be thoroughly documented. At a minimum this + includes inputs, return types, exceptions raised, and surprising behavior + like state changes. +- Documentation for this project is written in `reStructuredText`_ with the + `Google style`_ and generated with `Sphinx`_. + +To generate documentation run + +.. code-block:: sh + + tox -e docs + + +.. _Create an issue: https://help.github.com/articles/creating-an-issue +.. _pull request: https://help.github.com/articles/using-pull-requests/ +.. _draft pull request: https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests +.. _topic branch: https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows#Topic-Branches +.. _Fork: https://help.github.com/articles/fork-a-repo/ +.. _central repository: https://github.com/reillysiemens/ipython-style-gruvbox/ +.. _GitHub Flow: https://guides.github.com/introduction/flow/ +.. _pytest: https://docs.pytest.org/en/latest/ +.. _tox: https://tox.readthedocs.io/en/latest/ +.. _mypy: http://www.mypy-lang.org/ +.. _black: https://black.readthedocs.io/en/stable/ +.. _flake8: https://flake8.pycqa.org/en/latest/ +.. _bandit: https://bandit.readthedocs.io/en/latest/ +.. _reStructuredText: http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html +.. _Google style: https://www.sphinx-doc.org/en/master/usage/extensions/napoleon.html +.. _Sphinx: http://www.sphinx-doc.org/en/master/index.html diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..da21233 --- /dev/null +++ b/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright © 2020, Reilly Tucker Siemens + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..f19bf02 --- /dev/null +++ b/README.rst @@ -0,0 +1,19 @@ +IPython Style Gruvbox +===================== + +.. image:: https://img.shields.io/github/workflow/status/reillysiemens/ipython-style-gruvbox/Tests/master.svg?style=flat-square&label=tests + :target: https://github.com/reillysiemens/ipython-style-gruvbox/actions?query=workflow%3ATests + :alt: GitHub Actions test status + +.. image:: https://img.shields.io/coveralls/github/reillysiemens/ipython-style-gruvbox/master?style=flat-square + :target: https://coveralls.io/github/reillysiemens/ipython-style-gruvbox + :alt: Coveralls code coverage + +.. image:: https://img.shields.io/badge/code%20style-black-black?style=flat-square + :target: https://github.com/psf/black + :alt: Any color you like + +An opinionated terminal colorscheme for IPython using gruvbox colors. + +.. image:: docs/static/ipython-style-gruvbox.png + :alt: IPython Style Gruvbox diff --git a/docs/changelog.rst b/docs/changelog.rst new file mode 100644 index 0000000..76888fe --- /dev/null +++ b/docs/changelog.rst @@ -0,0 +1,3 @@ +.. _changelog: + +.. include:: ../CHANGELOG.rst diff --git a/docs/code-of-conduct.rst b/docs/code-of-conduct.rst new file mode 100644 index 0000000..bb240d1 --- /dev/null +++ b/docs/code-of-conduct.rst @@ -0,0 +1,3 @@ +.. _code-of-conduct: + +.. include:: ../CODE_OF_CONDUCT.rst diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..ddd8ed7 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,72 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + +import datetime as dt +from pathlib import Path +import sys + +sys.path.insert(0, str(Path("..").resolve())) + +from gruvbox import __author__, __version__ # noqa: E402 + + +# -- Project information ----------------------------------------------------- + +changelog_mtime = Path("../CHANGELOG.rst").stat().st_mtime +copyright_year = dt.datetime.utcfromtimestamp(changelog_mtime) +homepage = "https://tuckersiemens.com" + +project = "ipython-style-gruvbox" +author = __author__ +release = __version__ +version = ".".join(release.split(".", 2)[:2]) +copyright = f'{copyright_year:%Y}, {author}' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.todo", + "sphinx.ext.intersphinx", + "sphinx.ext.githubpages", + "sphinx.ext.napoleon", + "sphinx_autodoc_typehints", +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "alabaster" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] diff --git a/docs/contributing.rst b/docs/contributing.rst new file mode 100644 index 0000000..4628182 --- /dev/null +++ b/docs/contributing.rst @@ -0,0 +1,3 @@ +.. _contributing: + +.. include:: ../CONTRIBUTING.rst diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..ce0bfe0 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,33 @@ +.. ipython-style-gruvbox documentation master file + +IPython Style Gruvbox +===================== + +Release v\ |release|. (:ref:`Changelog `) + +.. image:: https://img.shields.io/github/workflow/status/reillysiemens/ipython-style-gruvbox/Tests/master.svg?style=flat-square&label=tests + :target: https://github.com/reillysiemens/ipython-style-gruvbox/actions?query=workflow%3ATests + :alt: GitHub Actions test status + +.. image:: https://img.shields.io/coveralls/github/reillysiemens/ipython-style-gruvbox/master?style=flat-square + :target: https://coveralls.io/github/reillysiemens/ipython-style-gruvbox + :alt: Coveralls code coverage + +.. image:: https://img.shields.io/badge/code%20style-black-black?style=flat-square + :target: https://github.com/psf/black + :alt: Any color you like + +An opinionated terminal colorscheme for IPython using gruvbox colors. + +.. image:: static/ipython-style-gruvbox.png + :alt: IPython Style Gruvbox + +Project Info +------------ + +.. toctree:: + :maxdepth: 1 + + Code of Conduct + changelog + contributing diff --git a/docs/static/ipython-style-gruvbox.png b/docs/static/ipython-style-gruvbox.png new file mode 100644 index 0000000000000000000000000000000000000000..c7114e8bcca898cf8a71ca731eee3bbfaef03ea6 GIT binary patch literal 154393 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%0DO&3|ZMj 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 literal 0 HcmV?d00001 diff --git a/gruvbox.py b/gruvbox.py new file mode 100644 index 0000000..24c519a --- /dev/null +++ b/gruvbox.py @@ -0,0 +1,108 @@ +"""An opinionated terminal colorscheme for IPython using gruvbox colors. + +Inspired or informed by the following: + - Pavel Pertsev's gruvbox colorscheme: https://git.io/JvV4I + - Dave Yarwood's gruvbox Pygments style: https://git.io/JvV4k + - python-mode's syntax highlighting: https://git.io/JvV4t + - The Pygments Python lexer: https://git.io/Jviis +""" + +from dataclasses import dataclass +from typing import Any, Dict + +from pygments.style import Style # type: ignore +from pygments.token import ( # type: ignore + Comment, + Error, + Keyword, + Name, + Number, + Operator, + String, + Text, + Token, +) + +__author__ = "Reilly Tucker Siemens" +__email__ = "reilly@tuckersiemens.com" +__version__ = "1.0.0" + + +@dataclass(frozen=True) +class Color: + """Absolute colors as defined by gruvbox: https://git.io/JvV8i.""" + + dark0_hard: str = "#1d2021" + dark0: str = "#282828" + dark0_soft: str = "#32302f" + dark1: str = "#3c3836" + dark2: str = "#504945" + dark3: str = "#665c54" + dark4: str = "#7c6f64" + dark4_256: str = "#7c6f64" + + gray_245: str = "#928374" + gray_244: str = "#928374" + + light0_hard: str = "#f9f5d7" + light0: str = "#fbf1c7" + light0_soft: str = "#f2e5bc" + light1: str = "#ebdbb2" + light2: str = "#d5c4a1" + light3: str = "#bdae93" + light4: str = "#a89984" + light4_256: str = "#a89984" + + bright_red: str = "#fb4934" + bright_green: str = "#b8bb26" + bright_yellow: str = "#fabd2f" + bright_blue: str = "#83a598" + bright_purple: str = "#d3869b" + bright_aqua: str = "#8ec07c" + bright_orange: str = "#fe8019" + + neutral_red: str = "#cc241d" + neutral_green: str = "#98971a" + neutral_yellow: str = "#d79921" + neutral_blue: str = "#458588" + neutral_purple: str = "#b16286" + neutral_aqua: str = "#689d6a" + neutral_orange: str = "#d65d0e" + + faded_red: str = "#9d0006" + faded_green: str = "#79740e" + faded_yellow: str = "#b57614" + faded_blue: str = "#076678" + faded_purple: str = "#8f3f71" + faded_aqua: str = "#427b58" + faded_orange: str = "#af3a03" + + +class GruvboxStyle(Style): + """An opinionated terminal colorscheme for IPython using gruvbox colors.""" + + styles: Dict[Any, str] = { + Comment: Color.gray_245, + Error: Color.bright_red, + Keyword.Namespace: Color.bright_blue, + Keyword.Constant: Color.bright_orange, + Keyword.Type: Color.bright_yellow, + Keyword: Color.bright_red, + Name.Builtin.Pseudo: Color.bright_blue, + Name.Builtin: Color.bright_yellow, + Name.Class: Color.bright_yellow, + Name.Decorator: f"{Color.bright_green} bold", + Name.Exception: Color.bright_red, + Name.Function: Color.bright_aqua, + Name.Variable.Magic: Color.bright_orange, + Name: Color.light1, + Number: Color.bright_purple, + Operator.Word: Color.bright_red, + Operator: Color.light1, + String.Affix: Color.light1, + String.Escape: Color.bright_orange, + String.Interpol: Color.bright_orange, + String: Color.bright_green, + Text: Color.light1, + Token.Punctuation: Color.light1, + } diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..9640edc --- /dev/null +++ b/poetry.lock @@ -0,0 +1,211 @@ +[[package]] +category = "dev" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +name = "appdirs" +optional = false +python-versions = "*" +version = "1.4.3" + +[[package]] +category = "dev" +description = "Cross-platform colored terminal text." +marker = "platform_system == \"Windows\"" +name = "colorama" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "0.4.3" + +[[package]] +category = "dev" +description = "Distribution utilities" +name = "distlib" +optional = false +python-versions = "*" +version = "0.3.0" + +[[package]] +category = "dev" +description = "A platform independent file lock." +name = "filelock" +optional = false +python-versions = "*" +version = "3.0.12" + +[[package]] +category = "dev" +description = "Core utilities for Python packages" +name = "packaging" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "20.3" + +[package.dependencies] +pyparsing = ">=2.0.2" +six = "*" + +[[package]] +category = "dev" +description = "plugin and hook calling mechanisms for python" +name = "pluggy" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "0.13.1" + +[package.extras] +dev = ["pre-commit", "tox"] + +[[package]] +category = "dev" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +name = "py" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.8.1" + +[[package]] +category = "main" +description = "Pygments is a syntax highlighting package written in Python." +name = "pygments" +optional = false +python-versions = ">=3.5" +version = "2.6.1" + +[[package]] +category = "dev" +description = "Python parsing module" +name = "pyparsing" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +version = "2.4.6" + +[[package]] +category = "dev" +description = "Python 2 and 3 compatibility utilities" +name = "six" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +version = "1.14.0" + +[[package]] +category = "dev" +description = "Python Library for Tom's Obvious, Minimal Language" +name = "toml" +optional = false +python-versions = "*" +version = "0.10.0" + +[[package]] +category = "dev" +description = "tox is a generic virtualenv management and test command line tool" +name = "tox" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +version = "3.14.5" + +[package.dependencies] +colorama = ">=0.4.1" +filelock = ">=3.0.0,<4" +packaging = ">=14" +pluggy = ">=0.12.0,<1" +py = ">=1.4.17,<2" +six = ">=1.14.0,<2" +toml = ">=0.9.4" +virtualenv = ">=16.0.0" + +[package.extras] +docs = ["sphinx (>=2.0.0,<3)", "towncrier (>=18.5.0)", "pygments-github-lexers (>=0.0.5)", "sphinxcontrib-autoprogram (>=0.1.5)"] +testing = ["freezegun (>=0.3.11,<1)", "pathlib2 (>=2.3.3,<3)", "pytest (>=4.0.0,<6)", "pytest-cov (>=2.5.1,<3)", "pytest-mock (>=1.10.0,<2)", "pytest-xdist (>=1.22.2,<2)", "pytest-randomly (>=1.0.0,<4)", "flaky (>=3.4.0,<4)", "psutil (>=5.6.1,<6)"] + +[[package]] +category = "dev" +description = "Seamless integration of tox into GitHub Actions" +name = "tox-gh-actions" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +version = "1.1.0" + +[package.dependencies] +tox = ">=3.12.2" + +[package.extras] +testing = ["flake8 (>=3,<4)", "pytest (>=4.0.0,<6)", "pytest-mock (>=2,<3)", "pytest-randomly (>=3)"] + +[[package]] +category = "dev" +description = "Virtual Python Environment builder" +name = "virtualenv" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +version = "20.0.10" + +[package.dependencies] +appdirs = ">=1.4.3,<2" +distlib = ">=0.3.0,<1" +filelock = ">=3.0.0,<4" +six = ">=1.9.0,<2" + +[package.extras] +docs = ["sphinx (>=2.0.0,<3)", "sphinx-argparse (>=0.2.5,<1)", "sphinx-rtd-theme (>=0.4.3,<1)", "towncrier (>=19.9.0rc1)", "proselint (>=0.10.2,<1)"] +testing = ["pytest (>=4.0.0,<6)", "coverage (>=4.5.1,<6)", "pytest-mock (>=2.0.0,<3)", "pytest-env (>=0.6.2,<1)", "pytest-timeout (>=1.3.4,<2)", "packaging (>=20.0)", "xonsh (>=0.9.13,<1)"] + +[metadata] +content-hash = "094b037700ec57d935981cb3673f973bc24c229ec01be6fb485623670c160196" +python-versions = "^3.8" + +[metadata.files] +appdirs = [ + {file = "appdirs-1.4.3-py2.py3-none-any.whl", hash = "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"}, + {file = "appdirs-1.4.3.tar.gz", hash = "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92"}, +] +colorama = [ + {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, + {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, +] +distlib = [ + {file = "distlib-0.3.0.zip", hash = "sha256:2e166e231a26b36d6dfe35a48c4464346620f8645ed0ace01ee31822b288de21"}, +] +filelock = [ + {file = "filelock-3.0.12-py3-none-any.whl", hash = "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836"}, + {file = "filelock-3.0.12.tar.gz", hash = "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59"}, +] +packaging = [ + {file = "packaging-20.3-py2.py3-none-any.whl", hash = "sha256:82f77b9bee21c1bafbf35a84905d604d5d1223801d639cf3ed140bd651c08752"}, + {file = "packaging-20.3.tar.gz", hash = "sha256:3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3"}, +] +pluggy = [ + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, + {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, +] +py = [ + {file = "py-1.8.1-py2.py3-none-any.whl", hash = "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"}, + {file = "py-1.8.1.tar.gz", hash = "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa"}, +] +pygments = [ + {file = "Pygments-2.6.1-py3-none-any.whl", hash = "sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"}, + {file = "Pygments-2.6.1.tar.gz", hash = "sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44"}, +] +pyparsing = [ + {file = "pyparsing-2.4.6-py2.py3-none-any.whl", hash = "sha256:c342dccb5250c08d45fd6f8b4a559613ca603b57498511740e65cd11a2e7dcec"}, + {file = "pyparsing-2.4.6.tar.gz", hash = "sha256:4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f"}, +] +six = [ + {file = "six-1.14.0-py2.py3-none-any.whl", hash = "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"}, + {file = "six-1.14.0.tar.gz", hash = "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a"}, +] +toml = [ + {file = "toml-0.10.0-py2.7.egg", hash = "sha256:f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3"}, + {file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"}, + {file = "toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c"}, +] +tox = [ + {file = "tox-3.14.5-py2.py3-none-any.whl", hash = "sha256:0cbe98369081fa16bd6f1163d3d0b2a62afa29d402ccfad2bd09fb2668be0956"}, + {file = "tox-3.14.5.tar.gz", hash = "sha256:676f1e3e7de245ad870f956436b84ea226210587d1f72c8dfb8cd5ac7b6f0e70"}, +] +tox-gh-actions = [ + {file = "tox-gh-actions-1.1.0.tar.gz", hash = "sha256:fbce2a435cab4619e5fe77ce08b941bf8f1569f67cc43ac26b0249b2c7b029f4"}, + {file = "tox_gh_actions-1.1.0-py2.py3-none-any.whl", hash = "sha256:1c491a6e73b13c72829b95e50d63060f920bd02e5e2ba3c5a79bfc312598f966"}, +] +virtualenv = [ + {file = "virtualenv-20.0.10-py2.py3-none-any.whl", hash = "sha256:10750cac3b5a9e6eed54d0f1f8222c550dc47f84609c95cbc504d44a58a048b8"}, + {file = "virtualenv-20.0.10.tar.gz", hash = "sha256:8512e83f1d90f8e481024d58512ac9c053bf16f54d9138520a0929396820dd78"}, +] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..a54ffd7 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,87 @@ +[build-system] +requires = ["poetry>=0.12"] +build-backend = "poetry.masonry.api" + +[tool.poetry] +name = "ipython-style-gruvbox" +version = "1.0.0" +description = "An opinionated terminal colorscheme for IPython using gruvbox colors." +authors = ["Reilly Tucker Siemens "] +license = "ISC" +packages = [ + { include = "gruvbox.py" }, +] + +[tool.poetry.dependencies] +python = "^3.8" +pygments = "^2.6.1" + +[tool.poetry.dev-dependencies] +tox = "^3.14.5" +tox-gh-actions = "^1.1.0" + +[tool.poetry.plugins."pygments.styles"] +gruvbox = "gruvbox:GruvboxStyle" + +[tool.tox] +legacy_tox_ini = """ +[tox] +minversion = 3.14.0 +envlist = + py38 + static + docs + +[testenv] +whitelist_externals = poetry +skip_install = true +deps = + pytest ~= 5.3.0 + pytest-cov ~= 2.8.0 + pytest-randomly ~= 3.2.0 +# XXX: (2020-03-15) This will install tox again, but it only happens once. +commands_pre = poetry install +commands = + pytest \ + --verbose \ + --cov=gruvbox \ + --cov-report=term-missing \ + --cov-fail-under=100 \ + {posargs} + +[testenv:static] +basepython = python3.8 +deps = + bandit ~= 1.6.0 + black ~= 19.10b0 + flake8 ~= 3.7.0 + flake8-bugbear ~= 20.1.0 + flake8-commas ~= 2.0.0 + flake8-docstrings ~= 1.5.0 + pep8-naming ~= 0.9.0 + mypy ~= 0.760 +commands_pre = +commands = + black --check gruvbox.py + flake8 --docstring-convention=google gruvbox.py + mypy \ + --disallow-untyped-calls \ + --disallow-untyped-defs \ + --disallow-incomplete-defs \ + --disallow-untyped-decorators \ + gruvbox.py + bandit --recursive -ll gruvbox.py + +[testenv:docs] +basepython = python3.8 +deps = + sphinx ~= 2.3.0 + sphinx-autodoc-typehints ~= 1.10.0 +commands_pre = +commands = + sphinx-build -b html docs {posargs:docs/_build/html} + +[gh-actions] +python = + 3.8: py38, static, docs +""" diff --git a/tests/test_gruvbox.py b/tests/test_gruvbox.py new file mode 100644 index 0000000..2c00fc3 --- /dev/null +++ b/tests/test_gruvbox.py @@ -0,0 +1,140 @@ +import pygments +from pygments.lexers import PythonLexer +from pygments.formatters import TerminalTrueColorFormatter +import pytest +from pytest import param + +from gruvbox import GruvboxStyle + + +def highlight(code: str) -> str: + """Highlight code in true color (24-bit) with the GruvboxStyle.""" + return pygments.highlight( + code=code, + lexer=PythonLexer(), + formatter=TerminalTrueColorFormatter(style=GruvboxStyle), + ) + + +@pytest.mark.parametrize( + "code,expected", + [ + param( + "# This is a comment.", + "\x1b[38;2;146;131;116m# This is a comment.\x1b[39m\n", + id="Comment", + ), + param( + "err?", + "\x1b[38;2;235;219;178merr\x1b[39m\x1b[38;2;251;73;52m?\x1b[39m\n", + id="Error", + ), + param( + "from gruvbox import GruvboxStyle", + "\x1b[38;2;131;165;152mfrom\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178mgruvbox\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;131;165;152mimport\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178mGruvboxStyle\x1b[39m\n", # noqa: E501 + id="Keyword.Namespace", + ), + param("None", "\x1b[38;2;254;128;25mNone\x1b[39m\n", id="Keyword.Constant",), + param("int", "\x1b[38;2;250;189;47mint\x1b[39m\n", id="Keyword.Type",), + param( + "try:\n pass\nexcept:\n raise", + "\x1b[38;2;251;73;52mtry\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\n\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;251;73;52mpass\x1b[39m\n\x1b[38;2;251;73;52mexcept\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\n\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;251;73;52mraise\x1b[39m\n", # noqa: E501 + id="Keyword", + ), + param( + "def method(self, other): ...", + "\x1b[38;2;251;73;52mdef\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;142;192;124mmethod\x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;131;165;152mself\x1b[39m\x1b[38;2;235;219;178m,\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178mother\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\n", # noqa: E501 + id="Name.Builtin.Pseudo", + ), + param( + "list(map(lambda n: n + 1, range(5)))", + "\x1b[38;2;250;189;47mlist\x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;250;189;47mmap\x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;251;73;52mlambda\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178mn\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178mn\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m+\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;211;134;155m1\x1b[39m\x1b[38;2;235;219;178m,\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;250;189;47mrange\x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;211;134;155m5\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\n", # noqa: E501 + id="Name.Builtin", + ), + param( + "class IsDismissed: ...", + "\x1b[38;2;251;73;52mclass\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;250;189;47mIsDismissed\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\n", # noqa: E501 + id="Name.Class", + ), + param( + "@decorator\ndef function(): ...", + "\x1b[38;2;184;187;38;01m@decorator\x1b[39;00m\n\x1b[38;2;251;73;52mdef\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;142;192;124mfunction\x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\n", # noqa: E501 + id="Name.Decorator", + ), + param( + 'raise KeyError("Wrong lock.")', + '\x1b[38;2;251;73;52mraise\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;251;73;52mKeyError\x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;184;187;38mWrong lock.\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\n', # noqa: E501 + id="Name.Exception", + ), + param( + "def foo(bar: int, baz: Optional[str] = None) -> None: ...", + "\x1b[38;2;251;73;52mdef\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;142;192;124mfoo\x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;235;219;178mbar\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;250;189;47mint\x1b[39m\x1b[38;2;235;219;178m,\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178mbaz\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178mOptional\x1b[39m\x1b[38;2;235;219;178m[\x1b[39m\x1b[38;2;250;189;47mstr\x1b[39m\x1b[38;2;235;219;178m]\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m=\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;254;128;25mNone\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m-\x1b[39m\x1b[38;2;235;219;178m>\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;254;128;25mNone\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\n", # noqa: E501 + id="Name.Function", + ), + param( + 'class IsDismissed:\n __slots__ = ("attr",)', + '\x1b[38;2;251;73;52mclass\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;250;189;47mIsDismissed\x1b[39m\x1b[38;2;235;219;178m:\x1b[39m\n\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;254;128;25m__slots__\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m=\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;184;187;38mattr\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;235;219;178m,\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\n', # noqa: E501 + id="Name.Variable.Magic", + ), + param( + "life = 42", + "\x1b[38;2;235;219;178mlife\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m=\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;211;134;155m42\x1b[39m\n", # noqa: E501 + id="Name", + ), + param( + "0b1101001", "\x1b[38;2;211;134;155m0b1101001\x1b[39m\n", id="Number.Bin", + ), + param("105.0", "\x1b[38;2;211;134;155m105.0\x1b[39m\n", id="Number.Float",), + param("0x69", "\x1b[38;2;211;134;155m0x69\x1b[39m\n", id="Number.Hex",), + param("105", "\x1b[38;2;211;134;155m105\x1b[39m\n", id="Number.Integer",), + param("0o151", "\x1b[38;2;211;134;155m0o151\x1b[39m\n", id="Number.Oct",), + param( + "x is not y and w is (y or z)", + "\x1b[38;2;235;219;178mx\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;251;73;52mis\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;251;73;52mnot\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178my\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;251;73;52mand\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178mw\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;251;73;52mis\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;235;219;178my\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;251;73;52mor\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178mz\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\n", # noqa: E501 + id="Operator.Word", + ), + param( + "3 != 4, 5 == 5, 0b001 << 3", + "\x1b[38;2;211;134;155m3\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m!=\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;211;134;155m4\x1b[39m\x1b[38;2;235;219;178m,\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;211;134;155m5\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m==\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;211;134;155m5\x1b[39m\x1b[38;2;235;219;178m,\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;211;134;155m0b001\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m<<\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;211;134;155m3\x1b[39m\n", # noqa: E501 + id="Operator", + ), + param( + 'f"f-strings {rule}"', + '\x1b[38;2;235;219;178mf\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;184;187;38mf-strings \x1b[39m\x1b[38;2;254;128;25m{\x1b[39m\x1b[38;2;235;219;178mrule\x1b[39m\x1b[38;2;254;128;25m}\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\n', # noqa: E501 + id="String.Affix", + ), + param( + '"""This is a docstring."""', + '\x1b[38;2;184;187;38m"""This is a docstring."""\x1b[39m\n', + id="String.Doc", + ), + param( + '"\\n\\t"', + '\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;254;128;25m\\n\x1b[39m\x1b[38;2;254;128;25m\\t\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\n', # noqa: E501 + id="String.Escape", + ), + param( + '"%s" % "{xyzzy}".format(xyzzy="plugh")', + '\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;254;128;25m%s\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;235;219;178m%\x1b[39m\x1b[38;2;235;219;178m \x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;254;128;25m{xyzzy}\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178mformat\x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;235;219;178mxyzzy\x1b[39m\x1b[38;2;235;219;178m=\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;184;187;38mplugh\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\n', # noqa: E501 + id="String.Interpol", + ), + param( + '"This is a string."', + '\x1b[38;2;184;187;38m"\x1b[39m\x1b[38;2;184;187;38mThis is a string.\x1b[39m\x1b[38;2;184;187;38m"\x1b[39m\n', # noqa: E501 + id="String", + ), + param( + " \n ", + "\x1b[38;2;235;219;178m \x1b[39m\n\x1b[38;2;235;219;178m \x1b[39m\n", + id="Text", + ), + param( + "[].reverse()", + "\x1b[38;2;235;219;178m[\x1b[39m\x1b[38;2;235;219;178m]\x1b[39m\x1b[38;2;235;219;178m.\x1b[39m\x1b[38;2;235;219;178mreverse\x1b[39m\x1b[38;2;235;219;178m(\x1b[39m\x1b[38;2;235;219;178m)\x1b[39m\n", # noqa: E501 + id="Token.Punctuation", + ), + ], +) +def test_highlighting(code: str, expected: str) -> None: + """The given code should highlight as expected.""" + assert highlight(code) == expected