profile
viewpoint

drothlis/clang-ctags 214

Generate tag file for C++ source code, using the clang C++ compiler's parsing libraries

drothlis/pretty-symbols 39

Emacs minor mode for drawing multi-character tokens as Unicode glyphs (lambda -> λ). A configurable replacement for pretty-mode and the like.

drothlis/gstreamer 17

Fork of http://cgit.freedesktop.org/gstreamer/gstreamer/ for work on the bash tab-completion script; now merged in upstream GStreamer 1.0

drothlis/open-vm-tools 5

Fork of VMWare's http://open-vm-tools.sourceforge.net with fixes for Fedora 18 guest OS

drothlis/dotemacs 1

David Röthlisberger's personal Emacs init files

drothlis/jekyll-rss-absolute-urls 1

A Jekyll plugin that converts relative URLs to absolute ones in href and src attributes. Designed for RSS feeds.

drothlis/angular.js 0

HTML enhanced for web apps

drothlis/awesome-test-automation 0

A curated list of awesome test automation frameworks, tools, libraries, and software for different programming languages. Sponsored by http://sdclabs.com

drothlis/clang-libtooling-docs 0

Proof of concept for generating clang's LibTooling documentation.

pull request commentstb-tester/stb-tester

Libcec fix

N.B. The unit tests haven't been fixed for Python 3 (they still use buffer and b"...") but they're skipped on our Python3/Ubuntu18.04 CI job, because import cec fails on Python 3.

In Ubuntu 20.04 the Python 3 bindings are available in the apt package python3-cec.

msiden

comment created time in 24 days

pull request commentstb-tester/stb-tester

Libcec fix

Thanks @msiden!

msiden

comment created time in 24 days

push eventstb-tester/stb-tester

Martin Sidén

commit sha 3ac1060032642db78d1e4e022bf5f0084cab21ab

HdmiCecControl: Fix for Python 3 tested ok on Python 2.7 in Ubuntu 18 and Python 3.8 in Ubuntu 20 Fixes #673.

view details

push time in 24 days

issue closedstb-tester/stb-tester

libcec and Python 3

I have got stbt up and running with Python 3. Everything seems to be working well except from when I use cec as control input. When I try to run a test I get this exception: AttributeError: module 'cec' has no attribute 'libcec_configuration'

Apparently there is a bug in libcec 4.0.2 which has been fixed in 4.0.4: https://bugs.launchpad.net/ubuntu/+source/libcec/+bug/1805620

Could I solve this issue by upgrading to Ubuntu 20? I'm now on Ubuntu 18.

Any advice is welcome. I've spent many hours investigating this and I'm just out of ideas.

closed time in 24 days

msiden

PR merged stb-tester/stb-tester

Libcec fix

Bug fix for allowing cec to function with Python 3 under Ubuntu 20.04 and libcec 4.0.4

Tested and verified in the above environment + with Python 2.7 under Ubuntu 18.04 I have NOT been able to test with Python 2 under Ubuntu 20.04

+6 -5

0 comment

1 changed file

msiden

pr closed time in 24 days

push eventstb-tester/stb-tester

David Röthlisberger

commit sha c22902739505d5bf7af425e289dab28ea3ac4b4b

Document stbt.TransitionStatus enum members

view details

David Röthlisberger

commit sha 91c152b603b9e1166ac59abbcef33027dc7094b7

stbt.Region.contains: Fix docstring Sphinx complains: "Field list ends without a blank line; unexpected unindent."

view details

David Röthlisberger

commit sha aa50f06ac7e661d8c73c32afdadac5a05e99ed06

Merge pull request #676 from stb-tester/TransitionStatus-docstring Document stbt.TransitionStatus enum members

view details

push time in a month

delete branch stb-tester/stb-tester

delete branch : TransitionStatus-docstring

delete time in a month

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 91c152b603b9e1166ac59abbcef33027dc7094b7

stbt.Region.contains: Fix docstring Sphinx complains: "Field list ends without a blank line; unexpected unindent."

view details

push time in a month

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 62e02aeafd034e23fb80fca760bdaf909b39f707

stbt.Region.contains: Fix docstring Sphinx complains: "Field list ends without a blank line; unexpected unindent."

view details

push time in a month

create barnchstb-tester/stb-tester

branch : TransitionStatus-docstring

created branch time in a month

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 637d6eb0d28ba4aa71acf9d7c7c0cadbb2fe420f

stbt.MultiPress docstring: Fix indentation of code block

view details

push time in a month

push eventstb-tester/stb-tester

David Röthlisberger

commit sha c8a27da52bd11439e7fbeee7ed2f69e031d40c1b

stbt.MultiPress docstring: Fix indentation of code block

view details

push time in a month

issue commentstb-tester/stb-tester

libcec and Python 3

Great, thanks for sharing.

A pull request is welcome but it will need to work with both Python 2 and 3. You can use to_native_str() in _stbt/utils.py.

msiden

comment created time in a month

issue commentstb-tester/stb-tester

libcec and Python 3

As far as I know, Ubuntu doesn't have Python3 bindings for libcec.

Apparently there is a bug in libcec 4.0.2 which has been fixed in 4.0.4: https://bugs.launchpad.net/ubuntu/+source/libcec/+bug/1805620

Stb-tester already works around this bug (in fact it was my colleague @wmanley who reported it).

msiden

comment created time in 2 months

pull request commentstb-tester/stb-tester

stbt.load_image: Return stbt.Image (numpy subclass) with additional "filename" attributes

One feature we can easily build once we have this, is to add caching to stbt.load_image so that code like this only loads the image from disk once:

stbt.wait_until(lambda: stbt.match("image.png"))

Plus a decorator to add caching to other image-processing functions, for example:

stbt.wait_until(lambda: stbt.match(
    remove_background("image.png"),
    frame=remove_background(stbt.get_frame())))

In this example, remove_background would still need to run against every frame, but it only needs to run once against the reference image "image.png".

drothlis

comment created time in 2 months

pull request commentstb-tester/stb-tester

stbt.load_image: Return stbt.Image (numpy subclass) with additional "filename" attributes

@wmanley please review. It's just a tidy-up really -- _load_image and _ImageFromUser have annoyed me for years -- but it could be convenient for reporting image filenames.

I might change MatchResult.image to be the actual Image instance instead of the filename, but I'd do that in a future pull request in the interest of getting this merged -- I've probably started a half-dozen attempts to do this over the years so I don't want to bank this progress.

drothlis

comment created time in 2 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 9caae6b05308e0cb3878c6716e068613f26b2cb3

stbt.load_image: Return stbt.Image (numpy subclass) ...with additional `filename`, `absolute_filename` and `relative_filename` attributes. `relative_filename` is calculated relative to `stbt.TEST_PACK_ROOT` if it exists. You can set it from any code that will run early enough, for example in `tests/__init__.py`: import os import stbt stbt.TEST_PACK_ROOT = os.path.abspath( os.path.join(os.path.dirname(__file__), "..")) On the Stb-tester commercial platform `stbt.TEST_PACK_ROOT` is automatically set to the root of the test-pack git repository. In future we may want `stbt run` to set this, but we'd have to define how to determine the root -- not all open-source users will be using git repos.

view details

David Röthlisberger

commit sha 720caf62806cd0c9d3a404b446628d0806fe6bc1

Remove internal _ImageFromUser & _load_image In favour of the new `stbt.Image` which tracks the image's filename in a better & more consistent way. The precise string in some of the debug, exceptions, video annotations, and MatchResult/MotionResult `image` or `mask` attributes, may have changed (e.g. "<Image>" instead of "<Custom Image>", or "None" in some cases) but otherwise this is an internal refactoring.

view details

push time in 2 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 38d39dce19dc2bd2c96a111c33ae161e88cb42e3

stbt.Frame constructor: Fix copying from a frame with time=0 `time` is wall-clock time, so in practice this only affects the unit tests. Fixes `test_that_wait_for_motion_detects_a_wipe` broken in the previous commit.

view details

David Röthlisberger

commit sha d048ea808d33b05c57b1b3ebbb856a47c471416b

stbt.load_image: Return stbt.Image (numpy subclass) ...with additional "filename" attribute.

view details

David Röthlisberger

commit sha e97e1d018fd5c49870d6e01e5c5c38e5ab33ea1c

Remove internal _ImageFromUser & _load_image In favour of the new `stbt.Image` which tracks the image's filename in a better & more consistent way. The precise string in some of the debug, exceptions, and MatchResult/MotionResult `image` or `mask` attributes, may have changed (e.g. "<Image>" instead of "<Custom Image>", or "None" in some cases) but otherwise this is an internal refactoring.

view details

push time in 2 months

pull request commentstb-tester/stb-tester

Add stbt.MultiPress: Enter text using a numeric keypad

@wmanley please review. This would've been useful in some test development I did recently.

Disclaimer: I haven't tested it on a real device, as I no longer have access to the device I could've used this on. I have a Roku & an Apple TV but neither of those support multi-press in their Search widgets (in fact they don't have a numeric keypad on their remote control). I'm fairly confident in the implementation given the unit tests, but I don't know if the default interletter_delay_secs will be sufficient.

drothlis

comment created time in 2 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha ad63fe1baca9aeae18a74a954810950e783045e7

Remove internal _ImageFromUser & _load_image In favour of the new `stbt.Image` which tracks the image's filename in a better & more consistent way. The precise string in some of the debug, exceptions, and MatchResult/MotionResult `image` or `mask` attributes, may have changed (e.g. "<Image>" instead of "<Custom Image>", or "None" in some cases) but otherwise this is an internal refactoring.

view details

push time in 2 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 288a4a30fb3e18e87edfc9eb6cba5c3dd0972f3c

stbt.Multipress: Fix _letters_to_keys doctest on Python 2 On Python 2.7 the dict insertion order isn't preserved.

view details

push time in 2 months

PR opened stb-tester/stb-tester

Add stbt.MultiPress: Enter text using a numeric keypad

In some apps, the search page allows entering text by pressing the keys on the remote control's numeric keypad: press the number "2" once for "A", twice for "B", etc.:

    1.,     ABC2    DEF3
    GHI4    JKL5    MNO6
    PQRS7   TUV8    WXYZ9
          [space]0

This is much easier (and faster) than moving a selection around an on-screen keyboard.

The keys for A-Z are specified in ITU E.161. The standard doesn't specify where "space" goes, but every implementation I have seen has it on KEY_0. Punctuation varies across implementations; I have arbitrarily chosen the behaviour of a Sky HD+ box that I had available for testing, but you can override this by passing key_mapping={"KEY_1": "@1.,-_} to the stbt.MultiPress constructor.

+225 -1

0 comment

5 changed files

pr created time in 2 months

create barnchstb-tester/stb-tester

branch : multipress

created branch time in 2 months

create barnchstb-tester/stb-tester

branch : Image

created branch time in 2 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha a9def8f784c23b23aa90c81435f70ba2117690bd

docstrings: Replace "unicode" => "str" We still support Python 2 but the docs we publish assume Python 3.

view details

David Röthlisberger

commit sha 17f39bf7ab935a3c2571044ef52639b9f1c250bf

Merge pull request #670 from stb-tester/docstrings-str-python3 docstrings: Replace "unicode" => "str"

view details

push time in 2 months

delete branch stb-tester/stb-tester

delete branch : docstrings-str-python3

delete time in 2 months

PR merged stb-tester/stb-tester

docstrings: Replace "unicode" => "str"

We still support Python 2 but the docs we publish assume Python 3.

+3 -4

0 comment

2 changed files

drothlis

pr closed time in 2 months

PR opened stb-tester/stb-tester

docstrings: Replace "unicode" => "str"

We still support Python 2 but the docs we publish assume Python 3.

+3 -4

0 comment

2 changed files

pr created time in 2 months

create barnchstb-tester/stb-tester

branch : docstrings-str-python3

created branch time in 2 months

push eventstb-tester/tutorial-test-pack

David Röthlisberger

commit sha 16dd40f4a86bbcb392a8d022af35a0da3591dc6a

Refactor: Move tests/youtube/search => tests/youtube/pages/search This matches our standard test-pack layout: A directory for each app-under-test (youtube), with tests (youtube/tests.py) and page objects (youtube/pages/). In our standard layout, `youtube/__init__.py` doesn't import all page objects, to avoid potential issues with circular references.

view details

David Röthlisberger

commit sha ed17e5ecc0477b0d758e67835578adbb0b47ff1d

Fix pylint warnings 1. Line too long. 2. We don't want to `assert` the press_and_wait in `clear`, because if you call `clear()` when there isn't any text entered yet there won't be any visible change to the screen.

view details

David Röthlisberger

commit sha 6b91423113710668cf21f902d898dafa2923294d

youtube.Search: Add missing navigation between SPACE↔BACKSPACE↔CLEAR

view details

David Röthlisberger

commit sha b1e693b092815d283b065692699a4e8bd6e406ff

youtube Search: Use stbt.grid_to_navigation_graph ...instead of specifying the entire graph by hand. We still need to specify some of the navigation explicitly, where the keyboard isn't strictly a grid: 5 6 7 8 9 0 ↓↑ ↓↑ ↓↑ ↓↑ ↓↑ ↓↑ SPACE BACKSP CLEAR

view details

push time in 2 months

created tagstb-tester/tutorial-test-pack

tagkeyboard-part-3

Example stb-tester test scripts

created time in 2 months

push eventstb-tester/tutorial-test-pack

David Röthlisberger

commit sha b8055b46ad3d66616eb1f75d2a75a3b76616ae98

Refactor: Move tests/youtube/search => tests/youtube/pages/search This matches our standard test-pack layout: A directory for each app-under-test (youtube), with tests (youtube/tests.py) and page objects (youtube/pages/). In our standard layout, `youtube/__init__.py` doesn't import all page objects, to avoid potential issues with circular references.

view details

David Röthlisberger

commit sha 5616ba1d4ce853ff9024eb2d7eeb6e71fa79409d

Fix pylint warnings 1. Line too long. 2. We don't want to `assert` the press_and_wait in `clear`, because if you call `clear()` when there isn't any text entered yet there won't be any visible change to the screen.

view details

David Röthlisberger

commit sha 42819b76085fc8de534c44c72f07a51e9c0680db

youtube.Search: Add missing navigation between SPACE↔BACKSPACE↔CLEAR

view details

David Röthlisberger

commit sha 1335352cb61384c750891109cca51fdb2110c344

youtube Search: Use stbt.grid_to_navigation_graph ...instead of specifying the entire graph by hand. We still need to specify some of the navigation explicitly, where the keyboard isn't strictly a grid: 5 6 7 8 9 0 ↓↑ ↓↑ ↓↑ ↓↑ ↓↑ ↓↑ SPACE BACKSP CLEAR

view details

push time in 2 months

delete branch stb-tester/stbt-rig

delete branch : hidden-snapshot-ref

delete time in 2 months

push eventstb-tester/stbt-rig

David Röthlisberger

commit sha f9159487081ae23b887ceb6a1c41b5fea5a203dd

Use refs/snapshots/$username instead of refs/heads/$username/snapshot This way the snapshot ref isn't a normal branch (because it's in `refs/snapshots` not `refs/heads`) which used to confuse some users (e.g. you could create a pull request from the snapshot branch, but on your next save it'd overwrite the contents of that branch without preserving any history of the previous snapshots). Note: We need to call `portal.notify_push` because github only notifies for normal branches in `refs/heads`. We only need to call `portal.notify_push` from the explicit snapshot command; when we call `push_git_snapshot` from `run_tests`, we immediately follow up by telling the portal to run the tests, and we tell the portal what the new SHA is so the portal will do a `git fetch` if it doesn't have the SHA.

view details

David Röthlisberger

commit sha 3e58343b33db9ce18a99a6579d35849ccd65463a

snapshot: Print abbreviated git sha of snapshot This is useful when you want to see if the portal has the new snapshot yet.

view details

William Manley

commit sha 565bf85c06c8cc2db52f2800c3842c9889731450

Record what branch we're on when we take a snapshot Snapshot branches are "owned" by the local git repo. The portal is not allowed to write to them. This informs which branch to write to such that a `git pull` will pull the changes into the local copy.

view details

William Manley

commit sha 384336c36e706512220db37095383b82748a8c37

tests: Remove unused imports

view details

David Röthlisberger

commit sha 81bd32327fd93cdbc6ed723068b7a6bbfedd1313

Merge pull request #30 from stb-tester/hidden-snapshot-ref Use refs/snapshots/$username instead of refs/heads/$username/snapshot

view details

push time in 2 months

PR merged stb-tester/stbt-rig

Use refs/snapshots/$username instead of refs/heads/$username/snapshot

This way the snapshot ref isn't a normal branch (because it's in refs/snapshot not refs/heads) which used to confuse some users (e.g. you could create a pull request from the snapshot branch, but on your next save it'd overwrite the contents of that branch without preserving any history of the previous snapshots).

Note: We need to call portal.notify_push because github only notifies for normal branches in refs/heads. We only need to call portal.notify_push from the explicit snapshot command; when we call push_git_snapshot from run_tests, we immediately follow up by telling the portal to run the tests, and we tell the portal what the new SHA is so the portal will do a git fetch if it doesn't have the SHA.

TODO:

  • [x] Rename to refs/snapshots
  • [x] deploy to all portals before merging this.
+83 -24

2 comments

2 changed files

drothlis

pr closed time in 2 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha bf7d33f3d6537d9b39f44aae5c327d9050aa8d8d

docstrings: Remove "Added/changed in" for changes pre-dating v29 v29 is the oldest version still used by any of our customers.

view details

David Röthlisberger

commit sha d7475d8d2645e4eaecf320a513230ecadf20d664

Merge pull request #669 from stb-tester/v29-docstrings docstrings: Remove "Added/changed in" for changes pre-dating v29

view details

push time in 2 months

delete branch stb-tester/stb-tester

delete branch : v29-docstrings

delete time in 2 months

PR merged stb-tester/stb-tester

docstrings: Remove "Added/changed in" for changes pre-dating v29

v29 is the oldest version still used by any of our customers.

+0 -30

0 comment

7 changed files

drothlis

pr closed time in 2 months

PR opened stb-tester/stb-tester

docstrings: Remove "Added/changed in" for changes pre-dating v29

v29 is the oldest version still used by any of our customers.

+0 -30

0 comment

7 changed files

pr created time in 2 months

create barnchstb-tester/stb-tester

branch : v29-docstrings

created branch time in 2 months

delete branch wmanley/stb-tester

delete branch : sink_pipeline-bounded-queue

delete time in 2 months

push eventstb-tester/stb-tester

William Manley

commit sha 9f260fc19b616776bc2b2c5da5308335812381fa

sink pipeline: Avoid filling up RAM if something goes wrong `appsrc` does its own buffering, and won't reject frames even if the sink pipeline isn't running or is in an error state. This can lead to memory exhaustion. This will at least avoid OOM, even if the sink pipeline will have to be fixed seperately.

view details

David Röthlisberger

commit sha 12246a94eccb797dccf1903855f8a64a7547c713

Merge pull request #668 from wmanley/sink_pipeline-bounded-queue sink pipeline: Avoid filling up RAM if something goes wrong

view details

push time in 2 months

PR merged stb-tester/stb-tester

sink pipeline: Avoid filling up RAM if something goes wrong

appsrc does its own buffering, and won't reject frames even if the sink pipeline isn't running or is in an error state. This can lead to memory exhaustion. This will at least avoid OOM, even if the sink pipeline will have to be fixed seperately.

100MB is 1.4s at 720p25.

TODO:

  • [x] Test with identity
+16 -0

3 comments

1 changed file

wmanley

pr closed time in 2 months

pull request commentstb-tester/stb-tester

sink pipeline: Avoid filling up RAM if something goes wrong

Given your last comment I assume the TODO item at the top should be ticked. I'll merge.

wmanley

comment created time in 2 months

push eventstb-tester/stbt-docker

David Röthlisberger

commit sha 4be240fc500b1bdc56beea5ae7469471f6eadb70

Update v31 docker image: Install "stbt.audio" stubs for Python 3

view details

push time in 3 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 041b59da6457145bb1dddbe2060ac55bc06a992c

stbt.ocr: Add `corrections` parameter A dict of {bad: good} mappings to correct known OCR mistakes.

view details

David Röthlisberger

commit sha 89d889fd00790a7ba20144ec47cb6c7634ecb30d

stbt.apply_ocr_corrections: Expose this API publically This applies the same corrections as `stbt.ocr`'s `corrections` parameter. This is useful for post-processing old test artifacts using new corrections.

view details

David Röthlisberger

commit sha 2475ee917ccceaa202abd72408402b0e806ae481

Add stbt.set_global_ocr_corrections: Default corrections for all ocr calls

view details

David Röthlisberger

commit sha 78a1025b7bd63c37d27e13d326815deb227258ed

Merge pull request #637 from stb-tester/ocr-corrections stbt.ocr: Add `corrections` parameter

view details

push time in 3 months

delete branch stb-tester/stb-tester

delete branch : ocr-corrections

delete time in 3 months

PR merged stb-tester/stb-tester

stbt.ocr: Add `corrections` parameter

A dict of {bad: good} mappings to correct known OCR mistakes.

TODO:

  • [x] Support plain text & regexes.
  • [ ] Way of specifying default corrections.

Out of scope for this pull request:

  • Also stbt.match_text? But it could be tricky if the pattern to replace spans multiple hocr xml elements.
+119 -2

13 comments

4 changed files

drothlis

pr closed time in 3 months

pull request commentstb-tester/stb-tester

stbt.ocr: Add `corrections` parameter

For globals I'd suggest steering clear of ini or toml, I think Python is fine. This allows flexibility and has a well known format with well understood escapes. I would suggest adding a function:

Thanks for the suggestion. Imagine having to deal with toml's escaping, on top of regexes' own escaping!

People can add it to their tests/__init__.py so it's initialised at startup.

I have documented this in set_global_ocr_corrections docstring.

drothlis

comment created time in 3 months

Pull request review commentstb-tester/stb-tester

stbt.ocr: Add `corrections` parameter

 def ocr(frame=None, region=Region.ALL,         tesseract_user_patterns, tesseract_user_words, upsample, text_color,         text_color_threshold, engine, char_whitelist, imglog)     text = text.strip().translate(_ocr_transtab)++    if corrections is not None:+        for bad, good in corrections.items():+            text = re.sub(bad, good, text)

The new implementation doesn't re-do the plain-text corrections (the ones that add word boundaries). It does for regexes, but it does them in the order they're specified (similar to nginx location patterns, except that nginx stops at the first match).

drothlis

comment created time in 3 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 89d889fd00790a7ba20144ec47cb6c7634ecb30d

stbt.apply_ocr_corrections: Expose this API publically This applies the same corrections as `stbt.ocr`'s `corrections` parameter. This is useful for post-processing old test artifacts using new corrections.

view details

David Röthlisberger

commit sha 2475ee917ccceaa202abd72408402b0e806ae481

Add stbt.set_global_ocr_corrections: Default corrections for all ocr calls

view details

push time in 3 months

Pull request review commentstb-tester/stb-tester

stbt.ocr: Add `corrections` parameter

 def ocr(frame=None, region=Region.ALL,         that tesseract won't think that a zero is the letter o.         Note that Tesseract 4.0's LSTM engine ignores ``char_whitelist``. +    :param dict corrections:

I prefer dicts because there's far less syntax characters involved. With Python 3 they're ordered already, and in Python 2 you can use an OrderedDict if you care about the order.

drothlis

comment created time in 3 months

pull request commentstb-tester/stb-tester

stbt.ocr: Add `corrections` parameter

I have force-pushed the following changes:

  • Drop the idea of using toml or ini or any other external config file.
    • In the next commit later today I will add set_global_ocr_corrections as per @wmanley's suggestion above.
  • Treat strings vs. re patterns (from re.compile) differently: With strings we enforce matching at word boundaries.

In your experience did you need to apply corrections to OCR at sub-word boundary? I'm wondering if requiring word boundaries for all keys (or by default) might make the behaviour more predictable?

In the test-pack I was working on, I used word boundaries (in fact I used literally this new implementation I've pushed for the strings with word boundaries; it just didn't support regexes).

In the test-pack I was working on, I also used this single regex (I had hard-coded it into my private ocr function):

text = re.sub(r"([a-zA-Z]) 8\. ([a-zA-Z])", r"\1 & \2", text)
drothlis

comment created time in 3 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 041b59da6457145bb1dddbe2060ac55bc06a992c

stbt.ocr: Add `corrections` parameter A dict of {bad: good} mappings to correct known OCR mistakes.

view details

push time in 3 months

push eventstb-tester/stb-tester

David Röthlisberger

commit sha 8f371c2920bf23d9f01e0dace51160de2e0bb675

stbt.ocr: Add `corrections` parameter A dict of {bad: good} mappings to correct known OCR mistakes.

view details

push time in 3 months

more