Skip to main content

A fast keyword searcher

Project description

"Universal" Text Finder

Test Status Coverage Status

It's basically just grep in python... Nothing fancy, just an easy extensible way to find things....

Yeah, I know, it's "reinventing the wheel" but ehhh, this is easier to extend to cover any and all weird cases without having to memorize a bunch of obscure combinations of bash commands.

That out of the way, let's talk about what this actually does...

Quick Overview

Essentially Black Arrow (or ba for short) is a way to search through every line in every file and find matching keyword or regular expressions. It uses smart case, so if the search term is all lowercase it defaults to case-insensitive (mostly for ease of use).

png

You can also supply it with regular expressions and it handles them natively.

png

Other features include -

  • excluding certain files or paths,
  • replacing any matches that have been found,
  • specifying the max depth to search (good for large directory structures),
  • "pipe" mode for unix piping,
  • open the files in the $EDITOR for manual parsing.

Installation

┬─[zoe@fillory:~/Dropbox/Projects/black-arrow]─[09:22:12 PM]
╰─>$ pip install --user blackarrow

Black-Arrow Script

┬─[zoe@fillory:~/Dropbox/Projects/black-arrow][09:33:40 PM]
╰─>$ ./black-arrow/blackarrow.py -h
usage: ba [-h] [-d DIRECTORIES [DIRECTORIES ...]] [-i IGNORE [IGNORE ...]]
          [-f FILENAME [FILENAME ...]] [-w WORKERS] [-p] [-e] [-l]
          [-r REPLACE] [-D DEPTH] [--dev]
          R

positional arguments:
  R                     Search term (regular expression)

optional arguments:
  -h, --help            show this help message and exit
  -d DIRECTORIES [DIRECTORIES ...], --directories DIRECTORIES [DIRECTORIES ...]
                        Director(y|ies) to run against
  -i IGNORE [IGNORE ...], --ignore IGNORE [IGNORE ...]
                        Things to ignore (regular expressions)
  -f FILENAME [FILENAME ...], --filename FILENAME [FILENAME ...]
                        Filename search term(s)
  -w WORKERS, --workers WORKERS
                        Number of workers to use (default numcores, with
                        fallback 6 unless set)
  -p, --pipe            Run in "pipe" mode with brief output
  -e, --edit            Edit the files?
  -l, --lower           Check strict lower case?
  -r REPLACE, --replace REPLACE
                        Replace text found in place with supplied
  -D DEPTH, --depth DEPTH
                        Directory depth to search in
  --dev                 Run in development mode (NO OUTPUT)

The Name

"Arrow! Black arrow! I have saved you to the last. You have never failed me and I have always recovered you. I had you from my father and he from of old. If ever you came from the forges of the true king under the Mountain, go now and speed well!"

― J.R.R. Tolkien, The Hobbit

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blackarrow-1.3.2.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

blackarrow-1.3.2-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file blackarrow-1.3.2.tar.gz.

File metadata

  • Download URL: blackarrow-1.3.2.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/5.4.0-171-generic

File hashes

Hashes for blackarrow-1.3.2.tar.gz
Algorithm Hash digest
SHA256 b76951979bdee0a74ca9b5b03a0fbd93ce06f968782ea3dac496502ecf292a59
MD5 99bd7f230ddf02a50589a7a676138405
BLAKE2b-256 7675777922dcba834988f32d5a11cfb1d4e3d7497a39df0e981f6188b2029378

See more details on using hashes here.

File details

Details for the file blackarrow-1.3.2-py3-none-any.whl.

File metadata

  • Download URL: blackarrow-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/5.4.0-171-generic

File hashes

Hashes for blackarrow-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 61414fcc41541d6d934cde940a5aed330a5c195dace9f7dd6e49de9cb00ad8bb
MD5 1f9d0fd741bc6a8bdf04616731659cd3
BLAKE2b-256 7126f654e00532a424aece7b844dfa341428aaca1e84e60628348b4aae7ecdde

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page