{"id":13862355,"url":"https://github.com/pythonic-emacs/pythonic","last_synced_at":"2025-07-14T11:33:29.044Z","repository":{"id":26133160,"uuid":"29578090","full_name":"pythonic-emacs/pythonic","owner":"pythonic-emacs","description":"Utility functions for writing pythonic emacs package.","archived":false,"fork":false,"pushed_at":"2024-07-21T10:59:05.000Z","size":104,"stargazers_count":45,"open_issues_count":2,"forks_count":10,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-08-05T06:05:40.542Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pythonic-emacs.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2015-01-21T07:45:33.000Z","updated_at":"2024-07-21T10:59:09.000Z","dependencies_parsed_at":"2024-01-20T03:22:10.304Z","dependency_job_id":"4d850eab-2ea4-432f-9b33-0ad9c71ca83d","html_url":"https://github.com/pythonic-emacs/pythonic","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythonic-emacs%2Fpythonic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythonic-emacs%2Fpythonic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythonic-emacs%2Fpythonic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythonic-emacs%2Fpythonic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pythonic-emacs","download_url":"https://codeload.github.com/pythonic-emacs/pythonic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225974432,"owners_count":17553954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-08-05T06:01:42.661Z","updated_at":"2024-11-22T22:31:01.706Z","avatar_url":"https://github.com/pythonic-emacs.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"[![MELPA](https://melpa.org/packages/pythonic-badge.svg)](https://melpa.org/#/pythonic)\n[![MELPA Stable](https://stable.melpa.org/packages/pythonic-badge.svg)](https://stable.melpa.org/#/pythonic)\n\n# Pythonic\n\n[![CI](https://github.com/pythonic-emacs/pythonic/actions/workflows/test.yml/badge.svg)](https://github.com/pythonic-emacs/pythonic/actions/workflows/test.yml)\n\nUtility functions for writing pythonic emacs package.\n\n## Installation\n\nYou can install this package form [Melpa](http://melpa.org)\n\n    M-x package-install RET pythonic RET\n\n## Usage\n\nThis library provide function for convenient running python on\ndifferent platforms on local and remote hosts including Docker\ncontainers and Vagrant virtual machines.  To use `pythonic` with\nDocker you need to install\n[docker-tramp](https://github.com/emacs-pe/docker-tramp.el) Emacs\npackage.\n\nYou can use remote interpreter from the tramp buffer.\n\n```lisp\n(cd \"/ssh:user@host:/home/user/\")\n;; or\n(cd \"/docker:root@container:/root/\")\n```\n\n## Functions\n\n### pythonic-call-process\n\nPythonic wrapper around `call-process`.\n\nFILE is the input file.  BUFFER is the output destination.  DISPLAY\nspecifies to redisplay BUFFER on new output.  ARGS is the list of\narguments passed to `call-process`.  CWD will be working directory for\nrunning process.\n\n```lisp\n(pythonic-call-process :buffer \"*Pythonic*\"\n                       :args '(\"-V\")\n                       :cwd \"~\")\n```\n\n### pythonic-start-process\n\nPythonic wrapper around `start-process`.\n\nPROCESS is a name of the created process.  BUFFER is a output\ndestination. ARGS are the list of args passed to `start-process`.  CWD\nwill be working directory for running process.  FILTER must be a\nsymbol of process filter function if necessary.  SENTINEL must be a\nsymbol of process sentinel function if necessary.  QUERY-ON-EXIT will\nbe corresponding process flag.\n\n```lisp\n(pythonic-start-process :process \"pythonic\"\n                        :buffer \"*Pythonic*\"\n                        :args '(\"-c\" \"print('PING')\")\n                        :cwd \"~\"\n                        :filter (lambda (process output) (message output))\n                        :sentinel (lambda (process event) (message \"Done.\"))\n                        :query-on-exit nil)\n```\n\n### pythonic-remote-p\n\nDetermine remote or local virtual environment.\n\n```lisp\n(pythonic-remote-p)\n```\n\n### pythonic-remote-docker-p\n\nDetermine docker remote virtual environment.\n\n```lisp\n(pythonic-remote-docker-p)\n```\n\n### pythonic-remote-vagrant-p\n\nDetermine vagrant remote virtual environment.\n\n```lisp\n(pythonic-remote-vagrant-p)\n```\n\n### pythonic-remote-user\n\nGet user of the connection to the remote python interpreter.\n\n```lisp\n(pythonic-remote-user)\n```\n\n### pythonic-remote-host\n\nGet host of the connection to the remote python interpreter.\n\n```lisp\n(pythonic-remote-host)\n```\n\n### pythonic-remote-port\n\nGet port of the connection to the remote python interpreter.\n\n```lisp\n(pythonic-remote-port)\n```\n\n## Commands\n\n### pythonic-activate\n\nActivate python virtual environment.  Tramp paths are supported.\n\n### pythonic-deactivate\n\nDeactivate python virtual environment.\n\n## Project settings\n\nYou can change the default docker-compose file name and set a default\nservice name to run the pythonic commands.\n\nAdd these lines to the `.dir-locals.el` file in the project root\ndirectory.\n\n```lisp\n((python . ((pythonic-docker-compose-filename . \"local.yml\")\n            (pythonic-docker-compose-service-name . \"web\"))))\n```\n\nYou can change the interpreter that pythonic uses. This is especially useful when you have set your `python-shell-interpreter` to something like `jupyter-console`. By default, it'll use `python-shell-interpreter`.\n\nTo change it:\n\n```lisp\n(setq pythonic-interpreter \"python\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythonic-emacs%2Fpythonic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpythonic-emacs%2Fpythonic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythonic-emacs%2Fpythonic/lists"}