-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- python 3.12 testing - pytz is not necessary anymore - use ruff - move tests inside the package
- Loading branch information
Showing
13 changed files
with
145 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
[submodule "tests/data/kobo_notes"] | ||
path = tests/data/kobo_notes | ||
path = testdata/kobo_notes | ||
url = https://github.com/CharlyMartin/kobo_notes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# this is a hack to monkey patch pytest so it handles tests inside namespace packages without __init__.py properly | ||
# without it, pytest can't discover the package root for some reason | ||
# also see https://github.com/karlicoss/pytest_namespace_pkgs for more | ||
|
||
import pathlib | ||
from typing import Optional | ||
|
||
import _pytest.main | ||
import _pytest.pathlib | ||
|
||
# we consider all dirs in repo/ to be namespace packages | ||
root_dir = pathlib.Path(__file__).absolute().parent.resolve() / 'src' | ||
assert root_dir.exists(), root_dir | ||
|
||
# TODO assert it contains package name?? maybe get it via setuptools.. | ||
|
||
namespace_pkg_dirs = [str(d) for d in root_dir.iterdir() if d.is_dir()] | ||
|
||
# resolve_package_path is called from _pytest.pathlib.import_path | ||
# takes a full abs path to the test file and needs to return the path to the 'root' package on the filesystem | ||
resolve_pkg_path_orig = _pytest.pathlib.resolve_package_path | ||
def resolve_package_path(path: pathlib.Path) -> Optional[pathlib.Path]: | ||
result = path # search from the test file upwards | ||
for parent in result.parents: | ||
if str(parent) in namespace_pkg_dirs: | ||
return parent | ||
raise RuntimeError("Couldn't determine path for ", path) | ||
_pytest.pathlib.resolve_package_path = resolve_package_path | ||
|
||
|
||
# without patching, the orig function returns just a package name for some reason | ||
# (I think it's used as a sort of fallback) | ||
# so we need to point it at the absolute path properly | ||
# not sure what are the consequences.. maybe it wouldn't be able to run against installed packages? not sure.. | ||
search_pypath_orig = _pytest.main.search_pypath | ||
def search_pypath(module_name: str) -> str: | ||
return str(root_dir) | ||
_pytest.main.search_pypath = search_pypath |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# see https://github.com/karlicoss/pymplate for up-to-date reference | ||
[project] | ||
dynamic = ["version"] # version is managed by setuptools_scm | ||
name = "kobuddy" | ||
dependencies = [ | ||
] | ||
|
||
## these need to be set if you're planning to upload to pypi | ||
description = "Backup and extract data from your Kobo reader" | ||
license = {file = "LICENSE.txt"} | ||
authors = [ | ||
{name = "Dima Gerasimov (@karlicoss)", email = "karlicoss@gmail.com"}, | ||
] | ||
maintainers = [ | ||
{name = "Dima Gerasimov (@karlicoss)", email = "karlicoss@gmail.com"}, | ||
] | ||
|
||
[project.urls] | ||
Homepage = "https://github.com/karlicoss/kobuddy" | ||
## | ||
|
||
[project.optional-dependencies] | ||
testing = [ | ||
"pytest", | ||
"ruff", | ||
"mypy", | ||
"lxml", # for mypy html coverage | ||
] | ||
|
||
[project.scripts] | ||
kobuddy = "kobuddy:__main__.main" | ||
|
||
[build-system] | ||
requires = ["setuptools", "setuptools-scm"] | ||
build-backend = "setuptools.build_meta" | ||
|
||
[tool.setuptools_scm] | ||
version_scheme = "python-simplified-semver" | ||
local_scheme = "dirty-tag" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
ignore = [ | ||
### too opinionated style checks | ||
"E501", # too long lines | ||
"E702", # Multiple statements on one line (semicolon) | ||
"E731", # assigning lambda instead of using def | ||
"E741", # Ambiguous variable name: `l` | ||
"E742", # Ambiguous class name: `O | ||
"E401", # Multiple imports on one line | ||
"F403", # import *` used; unable to detect undefined names | ||
### | ||
|
||
### | ||
"E722", # Do not use bare `except` ## Sometimes it's useful for defensive imports and that sort of thing.. | ||
"F811", # Redefinition of unused # this gets in the way of pytest fixtures (e.g. in cachew) | ||
|
||
## might be nice .. but later and I don't wanna make it strict | ||
"E402", # Module level import not at top of file | ||
|
||
### maybe consider these soon | ||
# sometimes it's useful to give a variable a name even if we don't use it as a documentation | ||
# on the other hand, often is a sign of error | ||
"F841", # Local variable `count` is assigned to but never used | ||
"F401", # imported but unused | ||
### | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule kobo_notes
updated
from 000000 to 2c97d5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters