Commit graph

52 commits

Author SHA1 Message Date
seanbreckenridge
9e5cd60ff2
browser: parse browser history using browserexport (#216)
* browser: parse browser history using browserexport

from seanbreckenridge/HPI module:
1fba8ccf2f/my/browser/export.py
2022-02-13 23:56:05 +00:00
Dima Gerasimov
5e9cc2a6a0 my.reddit: enable CI tests 2021-12-24 18:02:37 +00:00
Sean Breckenridge
8422c6e420
my.reddit: refactor into module that supports pushshift/gdpr (#179)
* initial pushshift/rexport merge implementation, using id for merging
* smarter module deprecation warning using regex
* add `RedditBase` from promnesia
* `import_source` helper for gracefully handing mixin data sources
2021-10-31 20:39:04 +00:00
Sean Breckenridge
4a04c09f31 docs: fix copy-paste errors/spelling mistakes 2021-07-10 10:56:23 +01:00
Sean Breckenridge
46198a6447
my.core.serialize: simplejson support, more types (#176)
* my.core.serialize: simplejson support, more types

I added a couple extra checks to the default function,
serializing datetime, dates and dataclasses (incase
orjson isn't installed)

(copied from below)

if orjson couldn't be imported, try simplejson
This is included for compatibility reasons because orjson
is rust-based and compiling on rarer architectures may not work
out of the box

as an example, I've been having issues getting it to install
on my phone (termux/android)

unlike the builtin JSON modue which serializes NamedTuples as lists
(even if you provide a default function), simplejson correctly
serializes namedtuples to dictionaries

this just gives another option to people, simplejson is pure python
so no one should have issues with that. orjson is still way faster,
so still preferable if its easy and theres a precompiled build
for your architecture (which there typically is)

If you're ever running this with simplejson installed and not orjson,
its pretty easy to tell as the JSON styling is different; orjson has
no spaces between tokens, simplejson puts spaces between tokens. e.g.

simplejson: {"a": 5, "b": 10}
orjson: {"a":5,"b":10}
2021-07-08 23:02:56 +01:00
Sean Breckenridge
821bc08a23
core/structure: help locate/extract gdpr exports (#175)
* core/structure: help locate/extract gdpr exports

* ci: add install-types to install stub packages
2021-07-08 00:44:55 +01:00
Sean Breckenridge
b64a11cc69
smscalls: allow multiple backup dirs (#172)
* smscalls: allow multiple backup dirs
* add smscalls to my.config, add test to CI
2021-05-14 01:35:36 +01:00
Dima Gerasimov
f09ca17560 core/sqlite: move tests to separate module, pickling during Pool.submit can't handle importing :( 2021-04-05 08:37:07 +01:00
Dima Gerasimov
ad177a1ccd my.pdfs: cleanup/refactor
- modernize:
  - add REQUIRES spec for pdfannots library
  - config dataclass/config stub
  - stats function
  - absolute my.core imports in anticipation of splitting core
- use 'paths' instead of 'roots' (better reflects the semantics), use get_files
  backward compatible via config migration
- properly run tests/mypy
2021-04-01 17:27:06 +01:00
Dima Gerasimov
29384aef44 my.goodreads: cleanup, rename from my.reading.goodrads & use proper pip dependency
related:
- https://github.com/karlicoss/HPI/issues/79
- 10d8cc86a1
2021-03-26 05:06:53 +00:00
Sean Breckenridge
eb26cf8633
my.core.serialize: orjson with additional default and _serialize hook (#140)
basic orjson serialize, json.dumps fallback

Lots of surrounding changes from this discussion:
0593c69056
2021-03-20 00:48:03 +00:00
Dima Gerasimov
a1a24ffbc3 my.coding.commits: more cleanup
Followup of https://github.com/karlicoss/HPI/pull/132

- add REQUIRES section
- use 'commits' config section & add proper schema
- use dedicated subdirectory for cache
2021-03-15 10:33:46 +00:00
Dima Gerasimov
ec8b0e9170 my.coding.commits: actually test on CI, add config stub 2021-03-15 10:33:46 +00:00
Dima Gerasimov
86497f9b13 new: basic arbtt module 2021-02-25 19:56:35 +00:00
Dima Gerasimov
da3c1c9b74 core/cachew: rely on ~/.cache for default cache path
- rely on appdirs for default cache path instead of hardcoded /var/tmp/cachew
  technically backwards incompatible, but no action needed
  you might want to clean /var/tmp/cachew after updating

- use default cache path (e.g. ~/.cache) by default
  see https://github.com/ActiveState/appdirs#some-example-output for more info
  *warning*: things will be cached by default now (used to be uncached before)

- treat cache_dir = None in the config
  *warning*: kind of backwards incompatible.. but again nothing disasterous
2021-02-21 19:51:58 +00:00
Dima Gerasimov
ad1cc71b0f readme: update 2021-02-20 01:39:55 +00:00
Dima Gerasimov
42399f6250 pinboard: *breaking backwards compability*, use pinbexport module directy
Use 'hpi module install my.pinboard' to install it

relevant: https://github.com/karlicoss/HPI/issues/79
2021-02-18 20:46:03 +00:00
Dima Gerasimov
0534c5c57d cli: add 'hpi module install' and 'hpi module requires'
ci: use hpi module install; remove explicit module links

relevant:

- https://github.com/karlicoss/HPI/issues/12
- https://github.com/karlicoss/HPI/issues/79
2021-02-18 02:04:40 +00:00
Dima Gerasimov
56d5587c20 CI: clean up tox config a bit, get rid of custom lint script 2021-02-18 02:04:40 +00:00
Dima Gerasimov
d562f00dca tests: run all tests, but exclude tests specific to my computer from CI
controllable via HPI_TESTS_KARLICOSS=true
2021-02-14 17:47:18 +00:00
Dima Gerasimov
6239879245 core: add more tests for stat/datetime guessing 2021-02-14 16:20:38 +00:00
Dima Gerasimov
dda628e866 CI: fix extras_require after dependency resolver update
https://github.com/pypa/pip/issues/8940
2020-12-11 07:02:16 +01:00
Dima Gerasimov
ddea816a49 my.stackexchange: use proper pip package, add stat
+ 'anonymous' mode for stat() function
2020-12-11 07:02:16 +01:00
Dima Gerasimov
a6e5908e6d get rid of porg dependency, use orgparse directly 2020-11-06 23:02:35 +01:00
Dima Gerasimov
1849a66f08 general: get rid of example_config & use demo/stub my.config instead 2020-11-01 02:02:43 +01:00
Dima Gerasimov
bdb5dcd221 my.calendar.holidays: cleanup + ci/stats + split off private data handling to https://github.com/karlicoss/hpi-personal-overlay 2020-10-09 23:22:00 +02:00
Dima Gerasimov
1f2e595be9 Initial my.time.tz provider, infer from location with daily resolution 2020-10-09 22:09:19 +02:00
Dima Gerasimov
ba9acc3445 my.location: let takeout provider be in a separate my.location.google; add CI test & enable mypy 2020-10-08 21:31:26 +02:00
Dima Gerasimov
6242307d7a my.bluemaestro: run against testdata, add on CI 2020-10-04 01:40:52 +02:00
Dima Gerasimov
e63c159b80 my.body.exercise: add more annotations & ci check 2020-10-03 18:24:08 +02:00
Dima Gerasimov
d8841d0d7a my.endomondo: add fake data generator, test mypy 2020-10-02 00:37:08 +02:00
Dima Gerasimov
1c20eb27aa CI: add mypy checks for my.reddit, my.pocket and my.github.ghexport 2020-09-30 23:33:06 +02:00
Dima Gerasimov
c79ffb50f6 core: add tests for core_config 2020-09-30 21:54:09 +02:00
Dima Gerasimov
f939daac99 ci: upload mypy coverage artifacts 2020-09-29 20:43:34 +02:00
Dima Gerasimov
dc642b5a6d my.instapaper: add stat; add mypy checks on CI 2020-09-29 20:43:34 +02:00
Dima Gerasimov
24fb983399 ci: add mypy for my.hypothesis 2020-09-29 19:44:45 +02:00
Dima Gerasimov
deefa9fbbc Use hypexport package in demo.py, clean up tox 2020-09-29 19:44:45 +02:00
Dima Gerasimov
7bd7cc9228 cli: integrate with stats reported by the modules 2020-05-25 11:46:30 +01:00
Dima Gerasimov
647b6087dd add main HPI executable 2020-05-14 23:01:50 +01:00
Dima Gerasimov
0ac78143f2 add my.demo for testing out various approaches to configuring 2020-05-10 21:32:48 +01:00
Dima Gerasimov
9d5d368891 get rid of unnecessary .init imports 2020-05-06 22:05:16 +01:00
Dima Gerasimov
6d1fba2171 Extra test for MY_CONFIG variable; fix order import for stub/dynamic config 2020-05-05 22:22:32 +01:00
Dima Gerasimov
4cceccd787 add test for dynamic config attributes (import my.cfg as config) 2020-05-04 22:08:58 +01:00
Dima Gerasimov
fe763c3c04 Fix my.config handling during mypy 2020-05-04 19:52:18 +01:00
Dima Gerasimov
1f07e1a2a8 enable mypy on CI for core stuff 2020-05-04 19:52:18 +01:00
Dima Gerasimov
55ac85c7e7 cpath tests, rely more on it 2020-05-04 08:53:41 +01:00
Dima Gerasimov
7fe6520575 Switch to github CI 2020-04-18 15:21:23 +01:00
Dima Gerasimov
e5b3a1e91e use my.config instead of mycfg; minor cleanups and docstrings 2020-04-12 00:22:10 +01:00
Dima Gerasimov
4641e5dd19 adjust tox config; temporary suppress pylint 2020-04-11 22:25:54 +01:00
Dima Gerasimov
fe0521b6dc install mycfg stub along with the package 2020-02-05 20:45:44 +00:00