Skip to content

Commit

Permalink
ci: GHA basic format & pre-commit (#2309)
Browse files Browse the repository at this point in the history
  • Loading branch information
henryiii authored Jul 20, 2020
1 parent e248869 commit d8c7ee0
Show file tree
Hide file tree
Showing 60 changed files with 121 additions and 28 deletions.
19 changes: 19 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Format

on:
workflow_dispatch:
pull_request:
push:
branches:
- master
- stable
- "v*"

jobs:
pre-commit:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: pre-commit/[email protected]
28 changes: 28 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.1.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
- id: check-merge-conflict
- id: check-symlinks
- id: check-yaml
- id: debug-statements
- id: end-of-file-fixer
- id: mixed-line-ending
- id: requirements-txt-fixer
- id: trailing-whitespace
- id: fix-encoding-pragma

- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.1.7
hooks:
- id: remove-tabs
exclude: (Makefile|debian/rules|.gitmodules)(\.in)?$

- repo: https://gitlab.com/pycqa/flake8
rev: 3.8.2
hooks:
- id: flake8
additional_dependencies: [flake8-bugbear]
exclude: ^(docs/.*|tools/.*)$
9 changes: 7 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,16 @@ adhere to the following rules to make the process as smooth as possible:
do add value by themselves.
* Add tests for any new functionality and run the test suite (``make pytest``)
to ensure that no existing features break.
* Please run ``flake8`` and ``tools/check-style.sh`` to check your code matches
the project style. (Note that ``check-style.sh`` requires ``gawk``.)
* Please run [``pre-commit``][pre-commit] and ``tools/check-style.sh`` to check
your code matches the project style. (Note that ``check-style.sh`` requires
``gawk``.) Use `pre-commit run --all-files` before committing (or use
installed-mode, check pre-commit docs) to verify your code passes before
pushing to save time.
* This project has a strong focus on providing general solutions using a
minimal amount of code, thus small pull requests are greatly preferred.

[pre-commit]: https://pre-commit.com

### Licensing of contributions

pybind11 is provided under a BSD-style license that can be found in the
Expand Down
1 change: 0 additions & 1 deletion docs/advanced/cast/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,3 @@ the last case of the above list.
chrono
eigen
custom

4 changes: 2 additions & 2 deletions docs/advanced/classes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ helper class that is defined as follows:
The macro :c:macro:`PYBIND11_OVERLOAD_PURE` should be used for pure virtual
functions, and :c:macro:`PYBIND11_OVERLOAD` should be used for functions which have
a default implementation. There are also two alternate macros
a default implementation. There are also two alternate macros
:c:macro:`PYBIND11_OVERLOAD_PURE_NAME` and :c:macro:`PYBIND11_OVERLOAD_NAME` which
take a string-valued name argument between the *Parent class* and *Name of the
function* slots, which defines the name of function in Python. This is required
Expand Down Expand Up @@ -1088,7 +1088,7 @@ Binding final classes

Some classes may not be appropriate to inherit from. In C++11, classes can
use the ``final`` specifier to ensure that a class cannot be inherited from.
The ``py::is_final`` attribute can be used to ensure that Python classes
The ``py::is_final`` attribute can be used to ensure that Python classes
cannot inherit from a specified type. The underlying C++ type does not need
to be declared final.

Expand Down
10 changes: 5 additions & 5 deletions docs/advanced/misc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ collected:
Both approaches also expose a potentially dangerous ``_cleanup`` attribute in
Python, which may be undesirable from an API standpoint (a premature explicit
call from Python might lead to undefined behavior). Yet another approach that
call from Python might lead to undefined behavior). Yet another approach that
avoids this issue involves weak reference with a cleanup callback:

.. code-block:: cpp
Expand Down Expand Up @@ -283,9 +283,9 @@ work, it is important that all lines are indented consistently, i.e.:
----------
)mydelimiter");
By default, pybind11 automatically generates and prepends a signature to the docstring of a function
By default, pybind11 automatically generates and prepends a signature to the docstring of a function
registered with ``module::def()`` and ``class_::def()``. Sometimes this
behavior is not desirable, because you want to provide your own signature or remove
behavior is not desirable, because you want to provide your own signature or remove
the docstring completely to exclude the function from the Sphinx documentation.
The class ``options`` allows you to selectively suppress auto-generated signatures:

Expand All @@ -298,8 +298,8 @@ The class ``options`` allows you to selectively suppress auto-generated signatur
m.def("add", [](int a, int b) { return a + b; }, "A function which adds two numbers");
}
Note that changes to the settings affect only function bindings created during the
lifetime of the ``options`` instance. When it goes out of scope at the end of the module's init function,
Note that changes to the settings affect only function bindings created during the
lifetime of the ``options`` instance. When it goes out of scope at the end of the module's init function,
the default settings are restored to prevent unwanted side effects.

.. [#f4] http://www.sphinx-doc.org
Expand Down
8 changes: 4 additions & 4 deletions docs/advanced/pycpp/object.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ This example obtains a reference to the Python ``Decimal`` class.
Calling Python functions
========================

It is also possible to call Python classes, functions and methods
It is also possible to call Python classes, functions and methods
via ``operator()``.

.. code-block:: cpp
Expand All @@ -75,7 +75,7 @@ via ``operator()``.
py::object makedirs = os.attr("makedirs");
makedirs("/tmp/path/to/somewhere");
One can convert the result obtained from Python to a pure C++ version
One can convert the result obtained from Python to a pure C++ version
if a ``py::class_`` or type conversion is defined.

.. code-block:: cpp
Expand All @@ -99,8 +99,8 @@ Python method.
py::print(py::str(exp_pi));
In the example above ``pi.attr("exp")`` is a *bound method*: it will always call
the method for that same instance of the class. Alternately one can create an
*unbound method* via the Python class (instead of instance) and pass the ``self``
the method for that same instance of the class. Alternately one can create an
*unbound method* via the Python class (instead of instance) and pass the ``self``
object explicitly, followed by other arguments.

.. code-block:: cpp
Expand Down
1 change: 1 addition & 0 deletions docs/benchmark.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import random
import os
import time
Expand Down
2 changes: 0 additions & 2 deletions docs/benchmark.rst
Original file line number Diff line number Diff line change
Expand Up @@ -93,5 +93,3 @@ favor.
.. only:: latex

.. image:: pybind11_vs_boost_python2.png


4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,8 @@
else:
html_context = {
'css_files': [
'//media.readthedocs.org/css/sphinx_rtd_theme.css',
'//media.readthedocs.org/css/readthedocs-doc-embed.css',
'//media.readthedocs.org/css/sphinx_rtd_theme.css',
'//media.readthedocs.org/css/readthedocs-doc-embed.css',
'_static/theme_overrides.css'
]
}
Expand Down
1 change: 0 additions & 1 deletion docs/limitations.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,3 @@ These features could be implemented but would lead to a significant increase in
complexity. I've decided to draw the line here to keep this project simple and
compact. Users who absolutely require these features are encouraged to fork
pybind11.

1 change: 1 addition & 0 deletions pybind11/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from ._version import version_info, __version__ # noqa: F401 imported but unused


Expand Down
1 change: 1 addition & 0 deletions pybind11/__main__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from __future__ import print_function

import argparse
Expand Down
1 change: 1 addition & 0 deletions pybind11/_version.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# -*- coding: utf-8 -*-
version_info = (2, 5, 'dev1')
__version__ = '.'.join(map(str, version_info))
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Setup script for PyPI; use CMakeFile.txt to build extension modules

Expand Down
1 change: 1 addition & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
"""pytest configuration
Extends output capture as needed by pybind11: ignore constructors, optional unordered lines.
Expand Down
1 change: 0 additions & 1 deletion tests/constructor_stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -273,4 +273,3 @@ template <class T, typename... Values> void print_values(T *inst, Values &&...va
print_constr_details(inst, ":", values...);
track_values(inst, values...);
}

1 change: 1 addition & 0 deletions tests/test_async.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import asyncio
import pytest
from pybind11_tests import async_module as m
Expand Down
1 change: 1 addition & 0 deletions tests/test_buffers.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import io
import struct
import sys
Expand Down
2 changes: 1 addition & 1 deletion tests/test_builtin_casters.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Python < 3 needs this: coding=utf-8
# -*- coding: utf-8 -*-
import pytest

from pybind11_tests import builtin_casters as m
Expand Down
1 change: 1 addition & 0 deletions tests/test_call_policies.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import call_policies as m
from pybind11_tests import ConstructorStats
Expand Down
1 change: 1 addition & 0 deletions tests/test_callbacks.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import callbacks as m
from threading import Thread
Expand Down
1 change: 1 addition & 0 deletions tests/test_chrono.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from pybind11_tests import chrono as m
import datetime

Expand Down
1 change: 1 addition & 0 deletions tests/test_class.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest

from pybind11_tests import class_ as m
Expand Down
1 change: 1 addition & 0 deletions tests/test_cmake_build/test.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import sys
import test_cmake_build

Expand Down
1 change: 1 addition & 0 deletions tests/test_constants_and_functions.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from pybind11_tests import constants_and_functions as m


Expand Down
1 change: 1 addition & 0 deletions tests/test_copy_move.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import copy_move_policies as m

Expand Down
1 change: 1 addition & 0 deletions tests/test_custom_type_casters.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import custom_type_casters as m

Expand Down
1 change: 1 addition & 0 deletions tests/test_docstring_options.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from pybind11_tests import docstring_options as m


Expand Down
5 changes: 3 additions & 2 deletions tests/test_eigen.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import ConstructorStats

Expand Down Expand Up @@ -143,7 +144,7 @@ def test_nonunit_stride_from_python():

counting_3d = np.arange(27.0, dtype=np.float32).reshape((3, 3, 3))
slices = [counting_3d[0, :, :], counting_3d[:, 0, :], counting_3d[:, :, 0]]
for slice_idx, ref_mat in enumerate(slices):
for ref_mat in slices:
np.testing.assert_array_equal(m.double_mat_cm(ref_mat), 2.0 * ref_mat)
np.testing.assert_array_equal(m.double_mat_rm(ref_mat), 2.0 * ref_mat)

Expand Down Expand Up @@ -172,7 +173,7 @@ def test_negative_stride_from_python(msg):
counting_3d = np.arange(27.0, dtype=np.float32).reshape((3, 3, 3))
counting_3d = counting_3d[::-1, ::-1, ::-1]
slices = [counting_3d[0, :, :], counting_3d[:, 0, :], counting_3d[:, :, 0]]
for slice_idx, ref_mat in enumerate(slices):
for ref_mat in slices:
np.testing.assert_array_equal(m.double_mat_cm(ref_mat), 2.0 * ref_mat)
np.testing.assert_array_equal(m.double_mat_rm(ref_mat), 2.0 * ref_mat)

Expand Down
1 change: 1 addition & 0 deletions tests/test_embed/test_interpreter.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from widget_module import Widget


Expand Down
1 change: 1 addition & 0 deletions tests/test_enum.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import enums as m

Expand Down
1 change: 1 addition & 0 deletions tests/test_eval.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import os
import pytest
from pybind11_tests import eval_ as m
Expand Down
1 change: 1 addition & 0 deletions tests/test_eval_call.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# This file is called from 'test_eval.py'

if 'call_test2' in locals():
Expand Down
1 change: 1 addition & 0 deletions tests/test_exceptions.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest

from pybind11_tests import exceptions as m
Expand Down
1 change: 1 addition & 0 deletions tests/test_factory_constructors.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
import re

Expand Down
1 change: 1 addition & 0 deletions tests/test_gil_scoped.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import multiprocessing
import threading
from pybind11_tests import gil_scoped as m
Expand Down
1 change: 1 addition & 0 deletions tests/test_iostream.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from pybind11_tests import iostream as m
import sys

Expand Down
1 change: 1 addition & 0 deletions tests/test_kwargs_and_defaults.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import kwargs_and_defaults as m

Expand Down
1 change: 1 addition & 0 deletions tests/test_local_bindings.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest

from pybind11_tests import local_bindings as m
Expand Down
1 change: 1 addition & 0 deletions tests/test_methods_and_attributes.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import methods_and_attributes as m
from pybind11_tests import ConstructorStats
Expand Down
1 change: 1 addition & 0 deletions tests/test_modules.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from pybind11_tests import modules as m
from pybind11_tests.modules import subsubmodule as ms
from pybind11_tests import ConstructorStats
Expand Down
1 change: 1 addition & 0 deletions tests/test_multiple_inheritance.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import ConstructorStats
from pybind11_tests import multiple_inheritance as m
Expand Down
1 change: 1 addition & 0 deletions tests/test_numpy_array.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import numpy_array as m

Expand Down
1 change: 1 addition & 0 deletions tests/test_numpy_dtypes.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import re
import pytest
from pybind11_tests import numpy_dtypes as m
Expand Down
1 change: 1 addition & 0 deletions tests/test_numpy_vectorize.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import numpy_vectorize as m

Expand Down
1 change: 1 addition & 0 deletions tests/test_opaque_types.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import opaque_types as m
from pybind11_tests import ConstructorStats, UserType
Expand Down
1 change: 1 addition & 0 deletions tests/test_operator_overloading.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import operators as m
from pybind11_tests import ConstructorStats
Expand Down
1 change: 1 addition & 0 deletions tests/test_pickling.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import pickling as m

Expand Down
1 change: 1 addition & 0 deletions tests/test_pytypes.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from __future__ import division
import pytest
import sys
Expand Down
1 change: 1 addition & 0 deletions tests/test_sequences_and_iterators.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import sequences_and_iterators as m
from pybind11_tests import ConstructorStats
Expand Down
Loading

0 comments on commit d8c7ee0

Please sign in to comment.