From 45c51bb630ac1375bfd6515dc0567e87d1d206c7 Mon Sep 17 00:00:00 2001 From: Ivan Ogasawara Date: Tue, 12 Dec 2023 22:01:26 -0400 Subject: [PATCH] fix: Rename project from containers-sugar to sugar and improve docs (#98) --- .github/ISSUE_TEMPLATE.md | 2 +- .makim.yaml | 6 +- .pre-commit-config.yaml | 4 +- .releaserc.json | 6 +- .containers-sugar.yaml => .sugar.yaml | 0 .vscode/settings.json | 2 +- README.md | 10 +- artwork/poc/favicon.svg | 71 ++++++++++ artwork/poc/logo.svg | 58 ++++++++ artwork/v1/favicon.png | Bin 0 -> 3571 bytes artwork/v1/logo.png | Bin 0 -> 18936 bytes docs/changelog.md | 98 +++++++------- docs/contributing.md | 18 +-- docs/example.ipynb | 6 +- docs/images/android-chrome-192x192.png | Bin 0 -> 6219 bytes docs/images/android-chrome-512x512.png | Bin 0 -> 25209 bytes docs/images/apple-touch-icon.png | Bin 0 -> 5624 bytes docs/images/favicon-16x16.png | Bin 0 -> 348 bytes docs/images/favicon-32x32.png | Bin 0 -> 664 bytes docs/images/favicon.ico | Bin 72342 -> 15406 bytes docs/images/logo.png | Bin 20402 -> 18936 bytes docs/images/site.webmanifest | 1 + docs/index.md | 17 ++- docs/installation.md | 25 ++-- docs/mkdocs.yaml | 140 -------------------- mkdocs.yaml | 21 +-- poetry.lock | 62 ++++----- pyproject.toml | 14 +- src/{containers_sugar => sugar}/__init__.py | 4 +- src/{containers_sugar => sugar}/__main__.py | 2 +- src/{containers_sugar => sugar}/cli.py | 12 +- src/{containers_sugar => sugar}/logs.py | 2 +- src/{containers_sugar => sugar}/sugar.py | 10 +- tests/__init__.py | 2 +- tests/test_containers_sugar.py | 6 +- 35 files changed, 295 insertions(+), 304 deletions(-) rename .containers-sugar.yaml => .sugar.yaml (100%) create mode 100644 artwork/poc/favicon.svg create mode 100644 artwork/poc/logo.svg create mode 100644 artwork/v1/favicon.png create mode 100644 artwork/v1/logo.png create mode 100644 docs/images/android-chrome-192x192.png create mode 100644 docs/images/android-chrome-512x512.png create mode 100644 docs/images/apple-touch-icon.png create mode 100644 docs/images/favicon-16x16.png create mode 100644 docs/images/favicon-32x32.png create mode 100644 docs/images/site.webmanifest delete mode 100644 docs/mkdocs.yaml rename src/{containers_sugar => sugar}/__init__.py (53%) rename src/{containers_sugar => sugar}/__main__.py (72%) rename src/{containers_sugar => sugar}/cli.py (92%) rename src/{containers_sugar => sugar}/logs.py (94%) rename src/{containers_sugar => sugar}/sugar.py (98%) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 610af2f..49729f3 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,4 +1,4 @@ -* containers-sugar version: +* sugar version: * Python version: * Operating System: diff --git a/.makim.yaml b/.makim.yaml index a402a05..1631a2d 100644 --- a/.makim.yaml +++ b/.makim.yaml @@ -24,13 +24,13 @@ groups: targets: build: help: Build the documentation - run: mkdocs build --config-file docs/mkdocs.yaml + run: mkdocs build --config-file mkdocs.yaml preview: help: Preview the documentation dependencies: - - target: docs-build - run: mkdocs serve --watch docs --config-file docs/mkdocs.yam + - target: docs.build + run: mkdocs serve --watch docs --config-file mkdocs.yaml package: help: helper commands for handling the package diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fed7dc3..738753d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -34,7 +34,7 @@ repos: name: mypy entry: mypy language: system - files: "src/containers_sugar/" + files: "src/sugar/" pass_filenames: true types: - python @@ -52,7 +52,7 @@ repos: name: vulture entry: vulture language: system - files: "src/containers_sugar/" + files: "src/sugar/" description: Find unused Python code. pass_filenames: true types: diff --git a/.releaserc.json b/.releaserc.json index 1ac2d40..aba2102 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -8,12 +8,12 @@ { "replacements": [ { - "files": ["src/containers_sugar/__init__.py"], + "files": ["src/sugar/__init__.py"], "from": "__version__ = '.*' # semantic-release", "to": "__version__ = '${nextRelease.version}' # semantic-release", "results": [ { - "file": "src/containers_sugar/__init__.py", + "file": "src/sugar/__init__.py", "hasChanged": true, "numMatches": 1, "numReplacements": 1 @@ -65,7 +65,7 @@ "assets": [ "pyproject.toml", "docs/changelog.md", - "src/containers_sugar/__init__.py" + "src/sugar/__init__.py" ], "message": "chore(release): ${nextRelease.version}" } diff --git a/.containers-sugar.yaml b/.sugar.yaml similarity index 100% rename from .containers-sugar.yaml rename to .sugar.yaml diff --git a/.vscode/settings.json b/.vscode/settings.json index c6a7220..2daaf44 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,4 @@ { - "python.formatting.blackPath": "/home/xmn/mambaforge/envs/containers-sugar/bin/blue", + "python.formatting.blackPath": "/home/xmn/mambaforge/envs/sugar/bin/blue", "python.formatting.provider": "black" } diff --git a/README.md b/README.md index 148a0b0..ed849e1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# containers-sugar +# sugar Simplify the usage of containers. @@ -23,7 +23,7 @@ configuration file. So the command line would be very simple. * Free software: BSD 3 Clause -* Documentation: https://osl-incubator.github.io/containers-sugar +* Documentation: https://osl-incubator.github.io/sugar ## Features @@ -68,7 +68,7 @@ The current available **ext** commands are: ## How to use it -First you need to place the config file `.containers-sugar.yaml` in the root +First you need to place the config file `.sugar.yaml` in the root of your project. This is an example of a configuration file: ```yaml @@ -100,10 +100,10 @@ groups: - name: service1 ``` -**NOTE**: containers-sugar has an convenient alias `sugar` that helps to +**NOTE**: sugar has an convenient alias `sugar` that helps to keep the command line shorter, where **k** stands for *containers*, **x** stands for *su* (*shu* sound), and **gr** stands for *gar*. -In another words, you can use `containers-sugar` or `sugar` CLI. +In another words, you can use `sugar` or `sugar` CLI. Some examples of how to use it: diff --git a/artwork/poc/favicon.svg b/artwork/poc/favicon.svg new file mode 100644 index 0000000..225e8ce --- /dev/null +++ b/artwork/poc/favicon.svg @@ -0,0 +1,71 @@ + + + + diff --git a/artwork/poc/logo.svg b/artwork/poc/logo.svg new file mode 100644 index 0000000..f69addf --- /dev/null +++ b/artwork/poc/logo.svg @@ -0,0 +1,58 @@ + + + + diff --git a/artwork/v1/favicon.png b/artwork/v1/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..0365dcc0d47c6d9441bd2432406cf329f39195b8 GIT binary patch literal 3571 zcmW+(c|6nqA0G?ba$j@%8Aab}!xWY~!k64q?m6?7kYny6>q6wKa&dz`N(cn~2_VxY|{3CC;qA!7F+qEPu8DhzpLy~iR2t_XRoD54X5v?To5+_}$3 z=qo|(0%I~ci9s;ccKhJw?k-4PPxd2N`A)e1F_xTia-Fj3*xu68JYj@ultja4(1(G>ACbsi=Z#Y5PE9F~(c%ph#A z7FcVnBAc_rHazAJKr(fBUDN;(b;qX&C3Da$cxx|D3ddc~9ZmX(XO6as=0GgEUc(&z zAc3-^Hi(q@sn`MzDOVyb-16x)pG9fb0B46hert(#KFSn?b1-lv!iMv3-9pR3!f{eA zyxYnPi|{p*dN$77RrpD&VMr#3zPx{Xzj00}7?mQ}M9lW%FCxdDNNhkJiD$V#^SA#) zpo5zqkIjj#uBoA`-X6|FY9M(ttL{ zJsME67MJN5@c&N>u7&f9x(oI!D963GuZJX&)_P~?ga6}nRGom=X zYa+YE9x`B0Dks4xPX?PL>1q^MncC?0mNdYmsy+VOBeC8kK}QqXjm!xf`R=)~o7Ty?TR^`QxjU=4+?&ZPPpe#WQ?#IjB*);g!~&l+>8#O04sMt4&U- z;5bQ*KX`TUs?T74{~;|!Y;CD`kyC@!DrX+01=R1;1S`hckTi*F~5xbT5^FcNxC| zjo&)-$+Bjwt7_k@EABy3kie+^MFUBOFF`%bX%iSEV${*}=zP>5((Xhfsp6L#dPac) zQ9UV_O1REAE&fa=RnE8?!EU^Ns_gRA3#847`tjhoryYB5y!}?$_pBuh{=fRSSl9H5 zYR1QZYF-g10a=_~5`;f@S33OiuRCe1=O5Z)A-A~K$ z&zQ`Gt1h#lBcR!Au@r%E=P=UdC~9RR2wQPtMN;_VtnbzLHve_)N;nX5%p2&QBG7ok zbyc@2?BNKzCbEoUmz};VR@<#TzgSNWCQOKuh)0zFiPbK_WYX3|Qp^DN-qHVQiu_Lo zY$!R*DHe^UdAy#vf6Amsqw)f7>`>*yB!Z>(%f6*zF;S|Vm}T6VsfEURpR&ufKtd<# zNfm+!wrGS2EHizXeQiZr_{qSRXiKn6TxNf@RHA@XPvYpcSG^q6l2yvPIV5YXhC&ky zHNbwI7CbJ>>+dMK@iw{CbjReAH9KAIud0aBULk|-P+U+ICxR5?e;J9Swv|MRo7Ju} z3<3>V``i?a-?vWL_Z2sq~(&~nLJ1P39B9T>$qiCTwYnaNFm3Em9 zli<}*2clBF1?7DuBZ~Z|S_y*fjv@oy{-kwfR(6@owK#pA7#fY+4eRhCWRn8I;D-1b z&o_I;vxY|7EV}M@*KW@izR{Ex^?M&MW1j&@yG21s%^Dk{DUx*ejgX#4|LWs%;cMU6 zo7tEbu5ww7#ZakB1TMs~36&rV{{ zLJ&{Tu~Hc-LlMs1Yt+XH2B_9cBbca8^=`cEmMV=HumpaG_qHoQn#NCb6?_zk*DNAajjKx+8B00w-9Q#!M~n4KRHzt4mbSNDO$0H znLvJzp)EaZwhY0>UtStQ{!e6?EtQza7L_-wC+UxmcGed;N8V{9HO4QoPVTwXC-?rt zh$me=6q72_tj)XpuX_G&>28w*~Zo^cO zYn9&gccy1Gw4hN+{I!^f{0obhwRYV0U#W`3m%UljNeOr1ST&5_?F_N8MTILTTW2ow zfl}m>>PU^8xQ@L}FPuH-<+rrk=Vd7+_7BPWoIZTwk4VE5zE2gyjfD!ED!ZXuN75f2 zeUOK$Z?h^s4k&}b0Nqha%Vhh@CqXhM5)Lcq)mHE^tZnK^d`wz|8BC~WOxC21K+2!= z{rzU}h{&(Audgsi`J(-_<*u;XuiTg3haz+P5;1O-+DSK*Xj>lJu10A$?#G;(@2cAR zAxSDSoL$?8uM$V?cZDaJlN#*fyyjS>C2#z^T_xC8&-Y5+PWetXLka&XA-7}bzWq=f z)NF#;x5Q8Z9v)k|uwEiJ)F>&v-@8;>JUA%C5^>AiRGZsNT0;BG2gaHsKBPa|Xz+{P zwWKMs5hvgDlfl}LI%Lb5*QF^{K@x#yG6Bf)~5U{y%|H;qCC6+kXjmV98OT!PH zh@vi3BrfF8sR&S1>JeD4$%s3qK)U6MQG20BvC}OMH`o)uJzc$5u4%fDd9aYw-@RyO z-^^!nlwcH-x4N91y3EMiA?AG;J6nWr4`u3gF>h?$HbhO?`BhhD>*yOlF7b>TSg@9X zIKDL1aAs$W=`P4X=oSYcCKczG1@_{B{^2?ZUw`rElU!%bA*b@J5nuvldI7^-uj~9; z#0ixo551HLQC!>;+Y>5*-g+rrxcRU2!^hz_iK@>{&VqsIdy(5C?4@W>4zMTpXrstw zBEP65f5pl*jTTT3KAWenXd0V*C?>8hL|&A>M@Eq_QiV=`N`t0)g;mDtz+<7n-fL|s zvH;ktwQJPgXDI-;b2R48%ci6{zlHJcVJ}MSup6W~4*Op&jok6$Mp3b>^o4duqWpxs z)lDljTRZBUMN{ib;^xBG9!)#Cdr6N&*%!pM<6av z(CEmxhM^Ey?z4SMrws>Q=AG1J7rp1_=9EQIn-;jDcI$H`l) z+z_Q>a8;ThZ^}<8`7|MY;h*MU8zO!NI{a<8IZN(RP?*2C)iQ^xxpbx?rw|oj?XkZ1 zT5`HZS}kR_t_^+&BP?CXu$5!AP)AlIF<-C~6VYuoL9P*_QBc$5zF}tR)b{5y!(83@ zv$~J-DS3UI=buQEzFzc(zhppD6yXfha`{8XK~9GenLzbSPIMkxP~k;Wqi46zvBT=> z$rRy%x{orFlTMELHTegb+ur5!$)~Ny7b@~iUl`c`jZ@h;#%gC~Bl=|{2wkum#wN9# z>iVQm?}$X6J80MN>|zleV_o-|LoVj6#>HHBp!NJz&yStmPAb<*{kVO9EFih7HVX@=fM;K{!xIqCgl1M;GQ`=V7x_&zks!5%OD*ZiVi5 zOzpy;(e5?LV|i6Upe%4&T&t2ZLBq^$BlV3go)Xf};gmYIHY2hJq(h^;sg8LvqA1bM z_dXSpN8MEda&H^H`OuVQUer${Lz!WaHvJMb8IoU|7Hm2rp~tY&3}0%6T#ZY Rfe#zV*}=`e%`Wuf{{e?H?rQ)5 literal 0 HcmV?d00001 diff --git a/artwork/v1/logo.png b/artwork/v1/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..074bbcb1ee65e45bc3886e03a06d4f6e69ebaf62 GIT binary patch literal 18936 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 diff --git a/docs/images/site.webmanifest b/docs/images/site.webmanifest new file mode 100644 index 0000000..1dd9112 --- /dev/null +++ b/docs/images/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} diff --git a/docs/index.md b/docs/index.md index 6906c23..277017d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,4 @@ -![LOGO](/images/logo.png) -# containers-sugar +# Get Started Simplify the usage of containers. @@ -23,8 +22,8 @@ gathering some useful scripts and keeping this information centralized in a configuration file. So the command line would be very simple. -* Free software: BSD 3 Clause -* Documentation: https://osl-incubator.github.io/containers-sugar +* License: BSD 3 Clause +* Documentation: https://osl-incubator.github.io/sugar ## Features @@ -69,14 +68,14 @@ The current available **ext** commands are: ## How to use it -First you need to place the config file `.containers-sugar.yaml` in the root +First you need to place the config file `.sugar.yaml` in the root of your project. This is an example of a configuration file: ```yaml version: 1.0 compose-app: docker-compose default: - group: {{ env.ENV }} + group: {{ "{{ env.ENV }}" }} groups: - name: group1 project-name: project1 @@ -101,10 +100,10 @@ groups: - name: service1 ``` -**NOTE**: containers-sugar has an convenient alias `sugar` that helps to +**NOTE**: sugar has an convenient alias `sugar` that helps to keep the command line shorter, where **k** stands for *containers*, **x** stands for *su* (*shu* sound), and **gr** stands for *gar*. -In another words, you can use `containers-sugar` or `sugar` CLI. +In another words, you can use `sugar` or `sugar` CLI. Some examples of how to use it: @@ -127,6 +126,6 @@ Some examples of how to use it: `sugar ext restart --group group1 --services service1,service2` -**NOTE**: If you use: ```default: group: {{ env.ENV }}```, you don't need to +**NOTE**: If you use: ```default: group: {{ "{{ env.ENV }}" }}```, you don't need to give `--group `, except if you want a different group than the default one. diff --git a/docs/installation.md b/docs/installation.md index 74db170..96dbfa9 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -2,36 +2,37 @@ ## Stable release -To install containers-sugar, run this command in your -terminal: +To install sugar, run this command in your terminal: ```bash $ pip install containers-sugar ``` -This is the preferred method to install containers-sugar, -as it will always install the most recent stable release. +Sugar is also available on conda-forge -If you don't have [pip](https://pip.pypa.io) installed, this -[Python installation guide](http://docs.python-guide.org/en/latest/starting/installation/) -can guide you through the process. +```bash +$ conda install -c conda-forge containers-sugar +``` + +This is the preferred method to install sugar, +as it will always install the most recent stable release. ## From sources -The sources for containers-sugar can be downloaded from -the [Github repo](https://github.com/osl-incubator/containers-sugar.git). +The sources for sugar can be downloaded from +the [Github repo](https://github.com/osl-incubator/sugar.git). You can either clone the public repository: ```bash -$ git clone https://github.com/osl-incubator/containers-sugar.git +$ git clone https://github.com/osl-incubator/sugar.git ``` Or download the -[tarball](https://github.com/osl-incubator/containers-sugar.git/tarball/main): +[tarball](https://github.com/osl-incubator/sugar.git/tarball/main): ```bash -$ curl -OJL https://github.com/osl-incubator/containers-sugar.git/tarball/main +$ curl -OJL https://github.com/osl-incubator/sugar.git/tarball/main ``` Once you have a copy of the source, you can install it with: diff --git a/docs/mkdocs.yaml b/docs/mkdocs.yaml deleted file mode 100644 index bba39f2..0000000 --- a/docs/mkdocs.yaml +++ /dev/null @@ -1,140 +0,0 @@ -site_name: containers-sugar -site_url: https://github.com/osl-incubator/containers-sugar -repo_url: https://github.com/osl-incubator/containers-sugar.git -docs_dir: ./ -site_dir: ../build -# extra_css: -# - stylesheets/extra.css -theme: - name: material - features: - - content.code.annotate - - content.tabs.link - - header.autohide - - navigation.indexes - - navigation.instant - - search.highlight - - search.share - - search.suggest - icon: - repo: fontawesome/brands/github - logo: /images/logo.png - favicon: /images/favicon.png - palette: - scheme: slate - primary: white - accent: lime - # custom_dir: docs/overrides -plugins: - - search - - macros - # - autorefs - # - exclude: - # glob: - # - backends/template.md - - mkdocstrings: - enable_inventory: true - handlers: - python: - import: - - https://docs.python.org/3/objects.inv - selection: - docstring_style: numpy - filters: - - "!^Bounds" - - "!^__class__" - - "!^_filter_with_like" - - "!^_find_backends" - - "!^_key$" - - "!^_literal_value_hash_key" - - "!^_log" - - "!^_nbytes" - - "!^_safe_name$" - - "!^_schema_from_csv" - - "!^_to_geodataframe" - - "!^_tuplize" - - "!^ast_schema" - - "!^backend_table_type" - - "!^bounds$" - - "!^column$" - - "!^compiler$" - - "!^context_class" - - "!^database_class" - - "!^do_connect" - - "!^fetch_from_cursor" - - "!^get_schema" - - "!^largest$" - - "!^reconnect" - - "!^select_builder_class" - - "!^select_class" - - "!^table_class$" - - "!^table_expr_class" - - "!^translator_class" - - "!^Options$" - rendering: - show_category_heading: true - show_root_full_path: false - show_root_heading: true - show_root_toc_entry: true - show_source: false - - mkdocs-jupyter: - execute: true - ignore: - - "*.py" - # execute_ignore: "tutorial/*Geospatial*.ipynb" - include_source: true - theme: dark - - literate-nav -markdown_extensions: - - admonition - - attr_list - - codehilite - - def_list - - footnotes - - md_in_html - - meta - - pymdownx.emoji: - emoji_index: !!python/name:materialx.emoji.twemoji - emoji_generator: !!python/name:materialx.emoji.to_svg - options: - custom_icons: - - docs/static/icons - - pymdownx.details - - pymdownx.highlight - - pymdownx.inlinehilite - - pymdownx.magiclink: - provider: github - repo_url_shortener: true - - pymdownx.saneheaders - - pymdownx.snippets - - pymdownx.superfences - - pymdownx.tabbed: - alternate_style: true - - tables - - toc -extra: - project_name: "containers-sugar" - team: - - name: "Active maintainers" - members: - - xmnlab - - name: "Former maintainers" - members: - - xmnlab - social: - - icon: fontawesome/brands/twitter - link: https://twitter.com/xmnlab - - icon: fontawesome/brands/github - link: https://github.com/osl-incubator/containers-sugar.git - support_levels: - supported: - icon: :material-check-decagram:{ .verified } - description: Tested in CI. If this doesn't work for you, please [file an issue](https://github.com/osl-incubator/containers-sugar.git/issues/new). - bug: - icon: :material-bug:{ .bug } - description: Should work but doesn't because upstream is broken. Supported on a best-effort basis. - unsupported: - icon: :material-cancel:{ .cancel } - description: Unlikely to ever be supported or no upstream support. - -copyright: "Copyright © 2022, containers-sugar Team" diff --git a/mkdocs.yaml b/mkdocs.yaml index 1b7a082..aba1650 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -1,6 +1,6 @@ -site_name: ContainersSugar -site_url: https://osl-incubator.github.io/containers-sugar -repo_url: https://github.com/osl-incubator/containers-sugar +site_name: Sugar +site_url: https://osl-incubator.github.io/sugar +repo_url: https://github.com/osl-incubator/sugar docs_dir: ./docs site_dir: ./build # extra_css: @@ -11,8 +11,8 @@ nav: - Installation: installation.md - Changelog: changelog.md - Contributing: contributing.md -# - API: api/references.md - - Notebook page: example.ipynb + # - API: api/references.md + # - Notebook page: example.ipynb theme: name: material features: @@ -44,7 +44,7 @@ plugins: enable_inventory: true handlers: python: - paths: [../src] + paths: [./src] import: - https://docs.python.org/3/objects.inv @@ -81,6 +81,7 @@ plugins: - "!^table_expr_class" - "!^translator_class" - "!^Options$" + rendering: show_category_heading: true show_root_full_path: false show_root_heading: true @@ -123,7 +124,7 @@ markdown_extensions: - tables - toc extra: - project_name: "Containers-Sugar" + project_name: "Sugar" team: - name: "Active maintainers" members: @@ -136,11 +137,11 @@ extra: - icon: fontawesome/brands/twitter link: https://twitter.com/xmnlab - icon: fontawesome/brands/github - link: https://github.com/osl-incubator/containers-sugar + link: https://github.com/osl-incubator/sugar support_levels: supported: icon: :material-check-decagram:{ .verified } - description: Tested in CI. If this doesn't work for you, please [file an issue](https://github.com/arxlang/astx/issues/new). + description: Tested in CI. If this doesn't work for you, please [file an issue](https://github.com/osl-incubator/sugar/issues/new). bug: icon: :material-bug:{ .bug } description: Should work but doesn't because upstream is broken. Supported on a best-effort basis. @@ -148,4 +149,4 @@ extra: icon: :material-cancel:{ .cancel } description: Unlikely to ever be supported or no upstream support. -copyright: "Copyright © 2023, Contaner-sugar Team" +copyright: "Copyright © 2023, Sugar Team" diff --git a/poetry.lock b/poetry.lock index ddfe812..04e123d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -49,13 +49,13 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte [[package]] name = "babel" -version = "2.13.1" +version = "2.14.0" description = "Internationalization utilities" optional = false python-versions = ">=3.7" files = [ - {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, - {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] [package.dependencies] @@ -77,18 +77,18 @@ files = [ [[package]] name = "bandit" -version = "1.7.5" +version = "1.7.6" description = "Security oriented static analyser for python code." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "bandit-1.7.5-py3-none-any.whl", hash = "sha256:75665181dc1e0096369112541a056c59d1c5f66f9bb74a8d686c3c362b83f549"}, - {file = "bandit-1.7.5.tar.gz", hash = "sha256:bdfc739baa03b880c2d15d0431b31c658ffc348e907fe197e54e0389dd59e11e"}, + {file = "bandit-1.7.6-py3-none-any.whl", hash = "sha256:36da17c67fc87579a5d20c323c8d0b1643a890a2b93f00b3d1229966624694ff"}, + {file = "bandit-1.7.6.tar.gz", hash = "sha256:72ce7bc9741374d96fb2f1c9a8960829885f1243ffde743de70a19cee353e8f3"}, ] [package.dependencies] colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} -GitPython = ">=1.0.1" +GitPython = ">=3.1.30" PyYAML = ">=5.3.1" rich = "*" stevedore = ">=1.20.0" @@ -490,13 +490,13 @@ files = [ [[package]] name = "distlib" -version = "0.3.7" +version = "0.3.8" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, - {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, ] [[package]] @@ -621,13 +621,13 @@ colorama = ">=0.4" [[package]] name = "identify" -version = "2.5.32" +version = "2.5.33" description = "File identification library for Python" optional = false python-versions = ">=3.8" files = [ - {file = "identify-2.5.32-py2.py3-none-any.whl", hash = "sha256:0b7656ef6cba81664b783352c73f8c24b39cf82f926f78f4550eda928e5e0545"}, - {file = "identify-2.5.32.tar.gz", hash = "sha256:5d9979348ec1a21c768ae07e0a652924538e8bce67313a73cb0f681cf08ba407"}, + {file = "identify-2.5.33-py2.py3-none-any.whl", hash = "sha256:d40ce5fcd762817627670da8a7d8d8e65f24342d14539c59488dc603bf662e34"}, + {file = "identify-2.5.33.tar.gz", hash = "sha256:161558f9fe4559e1557e1bff323e8631f6a0e4837f7497767c1782832f16b62d"}, ] [package.extras] @@ -1236,13 +1236,13 @@ test = ["mkdocs-include-markdown-plugin", "mkdocs-macros-test", "mkdocs-material [[package]] name = "mkdocs-material" -version = "9.4.14" +version = "9.5.2" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.4.14-py3-none-any.whl", hash = "sha256:dbc78a4fea97b74319a6aa9a2f0be575a6028be6958f813ba367188f7b8428f6"}, - {file = "mkdocs_material-9.4.14.tar.gz", hash = "sha256:a511d3ff48fa8718b033e7e37d17abd9cc1de0fdf0244a625ca2ae2387e2416d"}, + {file = "mkdocs_material-9.5.2-py3-none-any.whl", hash = "sha256:6ed0fbf4682491766f0ec1acc955db6901c2fd424c7ab343964ef51b819741f5"}, + {file = "mkdocs_material-9.5.2.tar.gz", hash = "sha256:ca8b9cd2b3be53e858e5a1a45ac9668bd78d95d77a30288bb5ebc1a31db6184c"}, ] [package.dependencies] @@ -1531,13 +1531,13 @@ testing = ["docopt", "pytest (<6.0.0)"] [[package]] name = "pathspec" -version = "0.11.2" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] @@ -1637,13 +1637,13 @@ virtualenv = ">=20.10.0" [[package]] name = "prompt-toolkit" -version = "3.0.41" +version = "3.0.42" description = "Library for building powerful interactive command lines in Python" optional = false python-versions = ">=3.7.0" files = [ - {file = "prompt_toolkit-3.0.41-py3-none-any.whl", hash = "sha256:f36fe301fafb7470e86aaf90f036eef600a3210be4decf461a5b1ca8403d3cb2"}, - {file = "prompt_toolkit-3.0.41.tar.gz", hash = "sha256:941367d97fc815548822aa26c2a269fdc4eb21e9ec05fc5d447cf09bad5d75f0"}, + {file = "prompt_toolkit-3.0.42-py3-none-any.whl", hash = "sha256:3b50b5fc50660dc8e39dfe464b170959ad82ff185ffa53bfd3be02222e7156a1"}, + {file = "prompt_toolkit-3.0.42.tar.gz", hash = "sha256:bfbf7d6ea9744e4ec94c9a69539e8106c77a2a607d728ded87c9182a4aec39be"}, ] [package.dependencies] @@ -2028,13 +2028,13 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "referencing" -version = "0.31.1" +version = "0.32.0" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.31.1-py3-none-any.whl", hash = "sha256:c19c4d006f1757e3dd75c4f784d38f8698d87b649c54f9ace14e5e8c9667c01d"}, - {file = "referencing-0.31.1.tar.gz", hash = "sha256:81a1471c68c9d5e3831c30ad1dd9815c45b558e596653db751a2bfdd17b3b9ec"}, + {file = "referencing-0.32.0-py3-none-any.whl", hash = "sha256:bdcd3efb936f82ff86f993093f6da7435c7de69a3b3a5a06678a6050184bee99"}, + {file = "referencing-0.32.0.tar.gz", hash = "sha256:689e64fe121843dcfd57b71933318ef1f91188ffb45367332700a86ac8fd6161"}, ] [package.dependencies] @@ -2496,13 +2496,13 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0, [[package]] name = "typing-extensions" -version = "4.8.0" +version = "4.9.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, - {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, + {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, + {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, ] [[package]] @@ -2660,4 +2660,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = ">=3.8.1,<3.12" -content-hash = "d35e67d97c5429089a6d7f6a71fddacb95997c70a886514e9db2da193bde511a" +content-hash = "e5a7fc75e6576fbe676594c1b8b8d82a753905e34900d1bc27e1bd0d35d6c197" diff --git a/pyproject.toml b/pyproject.toml index 3b25848..e21a05c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,17 +5,16 @@ description = "Simplify the usage of containers" authors = ["Ivan Ogasawara "] license = "BSD 3 Clause" packages = [ - {include = "containers_sugar", from="src"}, + {include = "sugar", from="src"}, ] -include = ["src/containers_sugar/py.typed"] +include = ["src/sugar/py.typed"] exclude = [ ".git/*", ".env*", ] [tool.poetry.scripts] -"containers-sugar" = "containers_sugar.__main__:app" -"sugar" = "containers_sugar.__main__:app" +"sugar" = "sugar.__main__:app" [tool.poetry.dependencies] python = ">=3.8.1,<3.12" @@ -24,6 +23,7 @@ sh = ">=2.0.0" pyyaml = ">=6" colorama = ">=0.4.6" python-dotenv = ">=0.21.1" +distlib = ">=0.3" [tool.poetry.group.dev.dependencies] pytest = ">=7.3.2" @@ -63,7 +63,7 @@ ignore_missing_imports = true [tool.ruff] line-length = 79 force-exclude = true -src = ["./src/containers_sugar", "./tests"] +src = ["./src/sugar", "./tests"] ignore = ["RUF012"] exclude = [ "docs", @@ -92,7 +92,7 @@ quote-style = "single" [tool.bandit] exclude_dirs = ["tests"] -targets = "src/containers_sugar/" +targets = "src/sugar/" [tool.vulture] exclude = ["tests"] @@ -100,6 +100,6 @@ ignore_decorators = [] ignore_names = [] make_whitelist = true min_confidence = 80 -paths = ["src/containers_sugar/"] +paths = ["src/sugar/"] sort_by_size = true verbose = false diff --git a/src/containers_sugar/__init__.py b/src/sugar/__init__.py similarity index 53% rename from src/containers_sugar/__init__.py rename to src/sugar/__init__.py index 9786558..3e71319 100644 --- a/src/containers_sugar/__init__.py +++ b/src/sugar/__init__.py @@ -1,4 +1,4 @@ -"""Top-level package for containers-sugar.""" +"""Top-level package for sugar.""" __author__ = 'Ivan Ogasawara' @@ -6,4 +6,4 @@ __version__ = '1.9.1' # semantic-release -from containers_sugar.sugar import Sugar # noqa: F401 +from sugar.sugar import Sugar # noqa: F401 diff --git a/src/containers_sugar/__main__.py b/src/sugar/__main__.py similarity index 72% rename from src/containers_sugar/__main__.py rename to src/sugar/__main__.py index 189c21e..bf3e6d2 100644 --- a/src/containers_sugar/__main__.py +++ b/src/sugar/__main__.py @@ -1,5 +1,5 @@ """The definition of the action for `python -m` command.""" -from containers_sugar.cli import app +from sugar.cli import app if __name__ == '__main__': app() diff --git a/src/containers_sugar/cli.py b/src/sugar/cli.py similarity index 92% rename from src/containers_sugar/cli.py rename to src/sugar/cli.py index b1a2461..8057e19 100644 --- a/src/containers_sugar/cli.py +++ b/src/sugar/cli.py @@ -6,20 +6,20 @@ from pathlib import Path from typing import Tuple -from containers_sugar import Sugar +from sugar import Sugar def _get_args(): """Define and return the arguments used by the CLI.""" parser = argparse.ArgumentParser( - prog='containers-sugar', + prog='sugar', description=( - 'containers-sugar (or sugar) is a tool that help you to organize' + 'sugar (or sugar) is a tool that help you to organize' "and simplify your containers' stack." ), epilog=( 'If you have any problem, open an issue at: ' - 'https://github.com/osl-incubator/containers-sugar' + 'https://github.com/osl-incubator/sugar' ), ) @@ -44,7 +44,7 @@ def _get_args(): parser.add_argument( '--version', action='store_true', - help='Show the version of containers-sugar.', + help='Show the version of sugar.', ) parser.add_argument( '--service-group', @@ -74,7 +74,7 @@ def _get_args(): parser.add_argument( '--config-file', type=str, - default=str(Path(os.getcwd()) / '.containers-sugar.yaml'), + default=str(Path(os.getcwd()) / '.sugar.yaml'), help='Specify a custom location for the config file.', ) parser.add_argument( diff --git a/src/containers_sugar/logs.py b/src/sugar/logs.py similarity index 94% rename from src/containers_sugar/logs.py rename to src/sugar/logs.py index 5b9601a..ba0a73d 100644 --- a/src/containers_sugar/logs.py +++ b/src/sugar/logs.py @@ -1,4 +1,4 @@ -"""Logs classes and function for containers-sugar system.""" +"""Logs classes and function for sugar system.""" import os from enum import Enum diff --git a/src/containers_sugar/sugar.py b/src/sugar/sugar.py similarity index 98% rename from src/containers_sugar/sugar.py rename to src/sugar/sugar.py index 8e544e9..f48285b 100644 --- a/src/containers_sugar/sugar.py +++ b/src/sugar/sugar.py @@ -13,8 +13,8 @@ from jinja2 import Template -from containers_sugar import __version__ -from containers_sugar.logs import KxgrErrorType, KxgrLogs +from sugar import __version__ +from sugar.logs import KxgrErrorType, KxgrLogs def escape_template_tag(v: str) -> str: @@ -231,7 +231,7 @@ def _load_env(self): return if not env_file.startswith('/'): - # use .containers-sugar file as reference for the working + # use .sugar file as reference for the working # directory for the .env file env_file = str(Path(self.config_file).parent / env_file) @@ -266,7 +266,7 @@ def _load_service_names(self): def _verify_args(self): if not self._check_config_file(): KxgrLogs.raise_error( - 'Config file .containers-sugar.yaml not found.', + 'Config file .sugar.yaml not found.', KxgrErrorType.KXGR_INVALID_CONFIGURATION, ) @@ -586,6 +586,6 @@ def run(self): # actions available def _version(self): - KxgrLogs.print_info('containers-sugar version:' + str(__version__)) + KxgrLogs.print_info('sugar version:' + str(__version__)) KxgrLogs.print_info('container program path: ' + str(self.compose_app)) self._call_compose_app('--version') diff --git a/tests/__init__.py b/tests/__init__.py index 9a66955..77c7fa8 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1 +1 @@ -"""Unit test package for containers-sugar.""" +"""Unit test package for sugar.""" diff --git a/tests/test_containers_sugar.py b/tests/test_containers_sugar.py index 74ddbac..3999923 100644 --- a/tests/test_containers_sugar.py +++ b/tests/test_containers_sugar.py @@ -1,12 +1,12 @@ -"""Tests for `containers-sugar` package.""" +"""Tests for `sugar` package.""" from copy import deepcopy from pathlib import Path import pytest -from containers_sugar import Sugar +from sugar import Sugar -CONFIG_PATH = Path(__file__).parent.parent / '.containers-sugar.yaml' +CONFIG_PATH = Path(__file__).parent.parent / '.sugar.yaml' DEFAULT_ARGS = { 'compose-app': 'docker compose', 'action': '',