{"id":15014441,"url":"https://github.com/furechan/nbmask","last_synced_at":"2026-02-14T17:32:26.119Z","repository":{"id":213567014,"uuid":"734417717","full_name":"furechan/nbmask","owner":"furechan","description":"IPython extension to mask sensitive data","archived":false,"fork":false,"pushed_at":"2025-11-05T23:37:48.000Z","size":114,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-06T01:11:54.931Z","etag":null,"topics":["extension","ipython","privacy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/furechan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-21T16:18:36.000Z","updated_at":"2025-11-05T23:37:52.000Z","dependencies_parsed_at":"2023-12-21T19:08:56.555Z","dependency_job_id":"ac35ebc4-a873-46d1-927a-0bb60b0e0cd5","html_url":"https://github.com/furechan/nbmask","commit_stats":null,"previous_names":["furechan/nbmask"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/furechan/nbmask","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furechan%2Fnbmask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furechan%2Fnbmask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furechan%2Fnbmask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furechan%2Fnbmask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/furechan","download_url":"https://codeload.github.com/furechan/nbmask/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furechan%2Fnbmask/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29450884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["extension","ipython","privacy"],"created_at":"2024-09-24T19:45:38.382Z","updated_at":"2026-02-14T17:32:26.114Z","avatar_url":"https://github.com/furechan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IPython extension to mask sensitive data\n\nSimple ipython extension to mask sensitive data like credentials from notebook cell outputs.\nThis extensions may be useful to avoid inadvertently displaying sensitive data in public notebooks.\nThe extension modifies the ipython display system to try and mask any occurence of sensitive data\nthat may appear in textual outputs from printing, logging and the native display system.\n\n## Usage\n\nTo load the extension use the magic command `%load_ext nbmask`. The extension will automatically\nmask the notebook display textual outputs without any further magic commands. When first loaded the\nextension will mask just the username.\n\n```python\nimport os\nfrom pathlib import Path\n\n%load_ext nbmask\n\nusername = os.getenv('USER')\nprint(\"My name is {username}!\")\n# \u003e\u003e\u003e My name is ...!\n\ndocuments = Path(f\"~/Documents\").expanduser()\ndocuments\n# \u003e\u003e\u003e PosixPath('/Users/.../Documents')\n```\n\n\nYou can add more secrets with the `%nbmask` magic line command\nand a string parameter using python builtin variable expansion syntax.\n\n\n```python\nTOKEN = my_secret_token()\n\n%nbmask \"$TOKEN\"\n\ncredentials = dict(user=username, token=TOKEN)\n\ncredentials\n# \u003e\u003e\u003e {'user': '...', 'token': '...'}\n```\n\nThe extension modifies standard output, standard error and\nalso the default logging handlers.\n\n```python\nimport logging\n\nlogging.basicConfig(level=\"DEBUG\")\n\nlogging.debug(\"Token is %s\", TOKEN)\n# \u003e\u003e\u003e DEBUG:root:Token is ...\n```\n\n## Example\n\nSee nbmask-tests.ipynb in `extras`\n\n## Installation\n\nYou can install the current version of this package with pip\n\n```console\npip install nbmask\n```\n\n## Changelog\n\n### 0.05\n- Now using `uv_build` backend\n- Added testing with `pytest` and `nbmake`\n- Requires python \u003e= 3.10 \n\n### 0.0.4\n- Cell magic `%%masked` is no longer needed. Will be removed\n\n### 0.0.3\n- Masking pattern is cached\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurechan%2Fnbmask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffurechan%2Fnbmask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurechan%2Fnbmask/lists"}