mirror of
https://github.com/dtomlinson91/tembo.git
synced 2025-12-22 09:45:44 +00:00
adding latest
This commit is contained in:
116
TODO.todo
116
TODO.todo
@@ -1,76 +1,24 @@
|
|||||||
Priority:
|
Priority:
|
||||||
✔ Write the tests @done(21-11-07 15:36)
|
☐ Version duty
|
||||||
☐ test logs: <https://stackoverflow.com/questions/53125305/testing-logging-output-with-pytest>
|
|
||||||
document this
|
|
||||||
☐ Docstrings
|
☐ Docstrings
|
||||||
☐ Update trilium with latest docstrings (documenting __init__ at class level etc)
|
☐ Update trilium with latest docstrings (documenting __init__ at class level etc)
|
||||||
Make sure the gist is updated for prospector with the right ignores
|
Make sure the gist is updated for prospector with the right ignores
|
||||||
|
☐ Document duties in Trilium and create a gist for common duties
|
||||||
|
|
||||||
Documentation:
|
Documentation:
|
||||||
☐ documented poetry with extras (panaetius `pyproject.toml`)
|
|
||||||
Docstrings:
|
Docstrings:
|
||||||
☐ Use Duty to write module docstrings
|
☐ Use Duty to write module docstrings
|
||||||
☐ Use Duty to add Class docstrings
|
☐ Use Duty to add Class docstrings
|
||||||
☐ Document these in Trilium and rewrite the docstrings notes
|
☐ Document these in Trilium and rewrite the docstrings notes
|
||||||
☐ Add the comment on Reddit (artie buco?) about imports in a module
|
☐ Add the comment on Reddit (artie buco?) about imports in a module
|
||||||
✔ Document using `__main__.py` and `cli.py` @done(21-11-07 15:21)
|
|
||||||
Use Duty as an example
|
|
||||||
|
|
||||||
☐ Document regex usage
|
|
||||||
☐ Write documentation using `mkdocs`
|
☐ Write documentation using `mkdocs`
|
||||||
☐ Create a boilerplate `duties.py` for common tasks for future projects. Put in a gist.
|
☐ Create a boilerplate `duties.py` for common tasks for future projects. Put in a gist.
|
||||||
☐ Look at how to use github actions
|
☐ Look at how to use github actions
|
||||||
Use <https://github.com/pdm-project/pdm/tree/main/.github/workflows> for an example
|
Use <https://github.com/pdm-project/pdm/tree/main/.github/workflows> for an example
|
||||||
☐ Build the docs using a github action.
|
☐ Build the docs using a github action.
|
||||||
|
|
||||||
☐ Document how to use pytest to read a logging message
|
|
||||||
<https://stackoverflow.com/questions/53125305/testing-logging-output-with-pytest>
|
|
||||||
- caplog as fixture
|
|
||||||
- reading `caplog.records[0].message`
|
|
||||||
see `_old_test_pages.py`
|
|
||||||
|
|
||||||
☐ Document testing value of an exception raised
|
|
||||||
When you use `with pytest.raises` you can use `.value` to access the attributes
|
|
||||||
reading `.value.code`
|
|
||||||
reading `str(.value)`
|
|
||||||
|
|
||||||
✔ Document working with exceptions @done(21-11-09 22:17)
|
|
||||||
✔ General pattern - raise exceptions in codebase, catch them in the CLI. @done(21-11-09 22:16)
|
|
||||||
Allows people to use via an API and handle the exceptions themselves.
|
|
||||||
You can use python builtins but custom exceptions are better for internal control
|
|
||||||
✔ Capturing exceptions in the CLI. @done(21-11-09 22:16)
|
|
||||||
Access the message of the exception with `.args[0]`.
|
|
||||||
use `raise SystemExit(1) from exception` in order to gracefully exit
|
|
||||||
✔ Adding custom args to an exception @done(21-11-09 22:17)
|
|
||||||
Overwrite `__init__`, access them in pytest with `.value.$args`
|
|
||||||
Access them in a try,except with `raise $excpetion as $name; $name.$arg`
|
|
||||||
|
|
||||||
☐ Document capturing stdout
|
|
||||||
Use `capsys`
|
|
||||||
`assert capsys.readouterr().out`
|
|
||||||
A new line may be inserted if using `click.echo()`
|
|
||||||
<https://docs.pytest.org/en/6.2.x/capture.html>
|
|
||||||
|
|
||||||
☐ Document using datadir with a module rather than a shared one. Link to tembo as an example.
|
|
||||||
☐ Can prospector ignore tests dir? document this in the gist if so
|
|
||||||
☐ Redo the documentation on a CLI, reorganise and inocropoate all the new tembo layouts
|
|
||||||
|
|
||||||
Testing:
|
|
||||||
☐ Document importing in inidivudal tests using `importlib.reload`
|
|
||||||
Globally import the module
|
|
||||||
Use `importlib.reload(module)` in each test instead of explicitly importing the module.
|
|
||||||
This is because the import is cached.
|
|
||||||
<https://stackoverflow.com/questions/32234156/how-to-unimport-a-python-module-which-is-already-imported>
|
|
||||||
|
|
||||||
Functionality:
|
Functionality:
|
||||||
✔ Replace loggers with `click.echo` for command outputs. Keep logging messages for actual logging messages? @done(21-11-09 22:17)
|
|
||||||
Define a format: [TEMBO:$datetime] $message 🐘 - document this in general python for CLI
|
|
||||||
✔ Refactor the tembo new command so the cli is split out into manageable methods @done(21-11-07 15:35)
|
|
||||||
✘ Use the complicated CLI example so the tembo new has its own module to define functions in @cancelled(21-11-07 15:35)
|
|
||||||
✔ Replace all logger errors with exceptions, move logger messages to the cli. @done(21-11-07 15:35)
|
|
||||||
✔ How to pass a successful save notification back to the CLI? Return a bool? Or is there some other way? @done(21-11-07 15:35)
|
|
||||||
✘ Replace pendulum with datetime @cancelled(21-11-07 15:35)
|
|
||||||
✔ Make options a property on the class, add to abstract @done(21-10-30 19:31)
|
|
||||||
☐ Use the python runner Duty
|
☐ Use the python runner Duty
|
||||||
<https://github.com/pawamoy/duty>
|
<https://github.com/pawamoy/duty>
|
||||||
☐ Run tests
|
☐ Run tests
|
||||||
@@ -80,10 +28,6 @@ Functionality:
|
|||||||
☐ Duty for auto insert version from `poetry version`.
|
☐ Duty for auto insert version from `poetry version`.
|
||||||
Need to decide what file to place `__version__` in.
|
Need to decide what file to place `__version__` in.
|
||||||
|
|
||||||
Logging:
|
|
||||||
✘ Make all internal tembo logs be debug @cancelled(21-11-09 22:20)
|
|
||||||
✘ User can enable them with the config @cancelled(21-11-09 22:20)
|
|
||||||
|
|
||||||
VSCode:
|
VSCode:
|
||||||
PyInstaller:
|
PyInstaller:
|
||||||
☐ Document build error: <https://github.com/pyenv/pyenv/issues/1095>
|
☐ Document build error: <https://github.com/pyenv/pyenv/issues/1095>
|
||||||
@@ -94,15 +38,10 @@ VSCode:
|
|||||||
dict.update -> |=
|
dict.update -> |=
|
||||||
walrus :=
|
walrus :=
|
||||||
|
|
||||||
Tests:
|
|
||||||
✔ Write tests! @2d @done(21-11-07 15:36)
|
|
||||||
Use coverage as going along to make sure all bases are covered in the testing
|
|
||||||
|
|
||||||
VSCode:
|
VSCode:
|
||||||
☐ Look at <https://github.com/CodeWithSwastik/vscode-ext>
|
☐ Look at <https://github.com/CodeWithSwastik/vscode-ext>
|
||||||
|
|
||||||
Logging:
|
Logging:
|
||||||
|
|
||||||
Documentation:
|
Documentation:
|
||||||
Tembo:
|
Tembo:
|
||||||
☐ Document creating new Tembo config
|
☐ Document creating new Tembo config
|
||||||
@@ -115,6 +54,57 @@ Logging:
|
|||||||
clone the repo, delete .git, git init, configure and add git origin
|
clone the repo, delete .git, git init, configure and add git origin
|
||||||
|
|
||||||
Archive:
|
Archive:
|
||||||
|
✘ test logs: <https://stackoverflow.com/questions/53125305/testing-logging-output-with-pytest> @cancelled(21-11-09 23:15) @project(Priority)
|
||||||
|
document this
|
||||||
|
✔ Write the tests @done(21-11-07 15:36) @project(Priority)
|
||||||
|
✔ documented poetry with extras (panaetius `pyproject.toml`) @done(21-11-09 22:29) @project(Documentation)
|
||||||
|
✔ Document using `__main__.py` and `cli.py` @done(21-11-07 15:21) @project(Documentation.Docstrings)
|
||||||
|
Use Duty as an example
|
||||||
|
✔ Document regex usage @done(21-11-09 22:39) @project(Documentation)
|
||||||
|
✔ Document how to use pytest to read a logging message @done(21-11-09 22:57) @project(Documentation)
|
||||||
|
<https://stackoverflow.com/questions/53125305/testing-logging-output-with-pytest>
|
||||||
|
caplog as fixture
|
||||||
|
reading `caplog.records[0].message`
|
||||||
|
see `_old_test_pages.py`
|
||||||
|
✔ Document testing value of an exception raised @done(21-11-09 22:50) @project(Documentation)
|
||||||
|
When you use `with pytest.raises` you can use `.value` to access the attributes
|
||||||
|
reading `.value.code`
|
||||||
|
reading `str(.value)`
|
||||||
|
✔ Document working with exceptions @done(21-11-09 22:17) @project(Documentation)
|
||||||
|
✔ General pattern - raise exceptions in codebase, catch them in the CLI. @done(21-11-09 22:16) @project(Documentation)
|
||||||
|
Allows people to use via an API and handle the exceptions themselves.
|
||||||
|
You can use python builtins but custom exceptions are better for internal control
|
||||||
|
✔ Capturing exceptions in the CLI. @done(21-11-09 22:16) @project(Documentation)
|
||||||
|
Access the message of the exception with `.args[0]`.
|
||||||
|
use `raise SystemExit(1) from exception` in order to gracefully exit
|
||||||
|
✔ Adding custom args to an exception @done(21-11-09 22:17) @project(Documentation)
|
||||||
|
Overwrite `__init__`, access them in pytest with `.value.$args`
|
||||||
|
Access them in a try,except with `raise $excpetion as $name; $name.$arg`
|
||||||
|
✔ Document capturing stdout @done(21-11-09 22:59) @project(Documentation)
|
||||||
|
Use `capsys`
|
||||||
|
`assert capsys.readouterr().out`
|
||||||
|
A new line may be inserted if using `click.echo()`
|
||||||
|
<https://docs.pytest.org/en/6.2.x/capture.html>
|
||||||
|
✔ Document using datadir with a module rather than a shared one. Link to tembo as an example. @done(21-11-09 22:59) @project(Documentation)
|
||||||
|
✘ Can prospector ignore tests dir? document this in the gist if so @cancelled(21-11-09 23:08) @project(Documentation)
|
||||||
|
✔ Redo the documentation on a CLI, reorganise and inocropoate all the new tembo layouts @done(21-11-09 23:08) @project(Documentation)
|
||||||
|
✔ Document importing in inidivudal tests using `importlib.reload` @done(21-11-09 23:13) @project(Documentation.Testing)
|
||||||
|
Globally import the module
|
||||||
|
Use `importlib.reload(module)` in each test instead of explicitly importing the module.
|
||||||
|
This is because the import is cached.
|
||||||
|
<https://stackoverflow.com/questions/32234156/how-to-unimport-a-python-module-which-is-already-imported>
|
||||||
|
✔ Replace loggers with `click.echo` for command outputs. Keep logging messages for actual logging messages? @done(21-11-09 22:17) @project(Functionality)
|
||||||
|
Define a format: [TEMBO:$datetime] $message 🐘 - document this in general python for CLI
|
||||||
|
✔ Refactor the tembo new command so the cli is split out into manageable methods @done(21-11-07 15:35) @project(Functionality)
|
||||||
|
✘ Use the complicated CLI example so the tembo new has its own module to define functions in @cancelled(21-11-07 15:35) @project(Functionality)
|
||||||
|
✔ Replace all logger errors with exceptions, move logger messages to the cli. @done(21-11-07 15:35) @project(Functionality)
|
||||||
|
✔ How to pass a successful save notification back to the CLI? Return a bool? Or is there some other way? @done(21-11-07 15:35) @project(Functionality)
|
||||||
|
✘ Replace pendulum with datetime @cancelled(21-11-07 15:35) @project(Functionality)
|
||||||
|
✔ Make options a property on the class, add to abstract @done(21-10-30 19:31) @project(Functionality)
|
||||||
|
✘ Make all internal tembo logs be debug @cancelled(21-11-09 22:20) @project(Logging)
|
||||||
|
✘ User can enable them with the config @cancelled(21-11-09 22:20) @project(Logging)
|
||||||
|
✔ Write tests! @2d @done(21-11-07 15:36) @project(Tests)
|
||||||
|
Use coverage as going along to make sure all bases are covered in the testing
|
||||||
✔ Document the python/logging/typing in Trilium @done(21-10-25 14:33) @project(Priority)
|
✔ Document the python/logging/typing in Trilium @done(21-10-25 14:33) @project(Priority)
|
||||||
✔ Update typing annotations to include generics instead @done(21-10-25 22:38) @project(Priority)
|
✔ Update typing annotations to include generics instead @done(21-10-25 22:38) @project(Priority)
|
||||||
https://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classes
|
https://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classes
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ pylint:
|
|||||||
# Used when an expression that is not a function call is assigned to nothing. Probably something else was intended.
|
# Used when an expression that is not a function call is assigned to nothing. Probably something else was intended.
|
||||||
# - expression-not-assigned
|
# - expression-not-assigned
|
||||||
# Used when a line is longer than a given number of characters.
|
# Used when a line is longer than a given number of characters.
|
||||||
- line-too-long
|
# - line-too-long
|
||||||
enable:
|
enable:
|
||||||
options:
|
options:
|
||||||
max-locals: 15
|
max-locals: 15
|
||||||
@@ -37,7 +37,7 @@ pylint:
|
|||||||
min-public-methods: 0
|
min-public-methods: 0
|
||||||
max-public-methods: 25
|
max-public-methods: 25
|
||||||
max-module-lines: 1000
|
max-module-lines: 1000
|
||||||
max-line-length: 88
|
max-line-length: 99
|
||||||
max-args: 8
|
max-args: 8
|
||||||
|
|
||||||
mccabe:
|
mccabe:
|
||||||
@@ -49,7 +49,7 @@ mccabe:
|
|||||||
pep8:
|
pep8:
|
||||||
run: true
|
run: true
|
||||||
options:
|
options:
|
||||||
max-line-length: 88
|
max-line-length: 99
|
||||||
single-line-if-stmt: n
|
single-line-if-stmt: n
|
||||||
disable:
|
disable:
|
||||||
# line too long
|
# line too long
|
||||||
@@ -66,28 +66,28 @@ pyroma:
|
|||||||
pep257:
|
pep257:
|
||||||
disable:
|
disable:
|
||||||
# !doc docstrings
|
# !doc docstrings
|
||||||
# Missing docstring in public package
|
# # Missing docstring in public package
|
||||||
- D104
|
# - D104
|
||||||
# Missing docstring in __init__
|
# # Missing docstring in __init__
|
||||||
- D107
|
# - D107
|
||||||
# Missing docstring in public module
|
# # Missing docstring in public module
|
||||||
- D100
|
# - D100
|
||||||
# Missing docstring in public class
|
# # Missing docstring in public class
|
||||||
- D101
|
# - D101
|
||||||
# Missing docstring in public method
|
# # Missing docstring in public method
|
||||||
- D102
|
# - D102
|
||||||
# Missing docstring in public function
|
# # Missing docstring in public function
|
||||||
- D103
|
# - D103
|
||||||
# Missing docstring in magic method
|
# # Missing docstring in magic method
|
||||||
- D105
|
# - D105
|
||||||
# One-line docstring should fit on one line with quotes
|
# # One-line docstring should fit on one line with quotes
|
||||||
- D200
|
# - D200
|
||||||
# No blank lines allowed after function docstring
|
# # No blank lines allowed after function docstring
|
||||||
- D202
|
# - D202
|
||||||
# Multi-line docstring summary should start at the second line
|
# # Multi-line docstring summary should start at the second line
|
||||||
- D213
|
# - D213
|
||||||
# First word of the docstring should not be This
|
# # First word of the docstring should not be This
|
||||||
- D404
|
# - D404
|
||||||
# DEFAULT IGNORES
|
# DEFAULT IGNORES
|
||||||
# 1 blank line required before class docstring
|
# 1 blank line required before class docstring
|
||||||
- D203
|
- D203
|
||||||
@@ -105,7 +105,7 @@ pep257:
|
|||||||
pyflakes:
|
pyflakes:
|
||||||
disable:
|
disable:
|
||||||
# module imported but unused
|
# module imported but unused
|
||||||
- F401
|
# - F401
|
||||||
|
|
||||||
dodgy:
|
dodgy:
|
||||||
run: true
|
run: true
|
||||||
|
|||||||
@@ -106,7 +106,8 @@ class PageCreator:
|
|||||||
|
|
||||||
|
|
||||||
class ScopedPageCreator(PageCreator):
|
class ScopedPageCreator(PageCreator):
|
||||||
"""Factory to create a scoped page.
|
"""
|
||||||
|
Factory to create a scoped page.
|
||||||
|
|
||||||
Attributes:
|
Attributes:
|
||||||
base_path (str): base path of tembo.
|
base_path (str): base path of tembo.
|
||||||
|
|||||||
Reference in New Issue
Block a user