{"id":24946480,"url":"https://github.com/gap-packages/francy","last_synced_at":"2025-04-10T05:44:27.348Z","repository":{"id":12683549,"uuid":"72536909","full_name":"gap-packages/francy","owner":"gap-packages","description":"An Interactive Discrete Mathematics Framework for GAP","archived":false,"fork":false,"pushed_at":"2024-12-12T15:16:44.000Z","size":14872,"stargazers_count":9,"open_issues_count":8,"forks_count":8,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-23T18:50:59.555Z","etag":null,"topics":["binder","d3v7","francy","gap","graphics-semantics","graphviz","graphviz-dot","javascript","jupyter","jupyter-gap-kernel","jupyter-notebook-extension","jupyterlab-extension","notebook","visjs"],"latest_commit_sha":null,"homepage":"https://gap-packages.github.io/francy/","language":"Jupyter Notebook","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/gap-packages.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-11-01T13:06:29.000Z","updated_at":"2024-12-12T15:16:48.000Z","dependencies_parsed_at":"2023-12-26T06:36:38.819Z","dependency_job_id":"318bb1af-bcd6-49b1-936c-a5ca0e0ec32e","html_url":"https://github.com/gap-packages/francy","commit_stats":{"total_commits":448,"total_committers":8,"mean_commits":56.0,"dds":0.3169642857142857,"last_synced_commit":"e7809e778200f3aafd7d8886a2bd3a40857bc50f"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gap-packages%2Ffrancy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gap-packages%2Ffrancy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gap-packages%2Ffrancy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gap-packages%2Ffrancy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gap-packages","download_url":"https://codeload.github.com/gap-packages/francy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247605705,"owners_count":20965639,"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":["binder","d3v7","francy","gap","graphics-semantics","graphviz","graphviz-dot","javascript","jupyter","jupyter-gap-kernel","jupyter-notebook-extension","jupyterlab-extension","notebook","visjs"],"created_at":"2025-02-02T20:56:34.977Z","updated_at":"2025-04-10T05:44:27.322Z","avatar_url":"https://github.com/gap-packages.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Build Workflow](https://github.com/gap-packages/francy/actions/workflows/CI.yml/badge.svg)\n[![Test Coverage Status](https://codecov.io/gh/gap-packages/francy/branch/master/graph/badge.svg)](https://codecov.io/gh/gap-packages/francy)\n\n[![Jupyter Notebook extension](https://badge.fury.io/py/jupyter-francy.svg)](https://badge.fury.io/py/jupyter-francy)\n[![Jupyter Lab version](https://badge.fury.io/py/jupyterlab-francy.svg)](https://badge.fury.io/py/jupyterlab-francy)\n\n# Francy\n\nFrancy is a package for GAP that provides a framework for Interactive Discrete Mathematics.\n\nUnlike [XGAP](https://github.com/gap-packages/xgap), Francy is not linked with any GUI framework and instead, \nthis package is responsible for the generation of a semantic model that can be used to produce a graphical representation \nusing any other framework / language.\n\nSee [Official Documentation](https://gap-packages.github.io/francy/doc/chap1.html)\n\nThere is javascript module responsible for generating a graphical representation of the semantic model,\nthat works on Jupyter, embedded in a Web page or as a Desktop Application (e.g. using electron).\n\nSee [Graphics Interface](/js)\n\n## Binder\n\nJupyter Lab Binder\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/gap-packages/francy/master?urlpath=lab)\n\nThe following notebooks are available:\n\n| Notebook                        | Description                                                   |\n|:--------------------------------|:--------------------------------------------------------------|\n| demo.ipynb                      | Contains examples of all features present in Francy           |\n| francy.ipynb                    | First notebook ever created with Francy                       |\n| francy-features.ipynb           | Contains examples of all features present in Francy           |\n| francy-monoids.ipynb            | Contains FrancyMonoids package examples                       |\n| francy-monoids-mult-three.ipynb | Contains an example of proofs used in a paper                 |\n| francy-numericalsgps.ipynb      | Same as above, but the algorithms are visible in the notebook |\n| ICMS_2018.ipynb                 | Presentation notebook for the ICMS 2018 in USA                |\n| messages.ipynb                  | Contains examples of how to use messages                      |\n| orbital-graphs.ipynb            | Contains some research algorithms for orbital graphs          |\n| output-widget.ipynb             | Contains an example of the output of 'plain/text' elements    |\n| subgroup-lattice.ipynb          | Contains Subgroup-Lattice package examples                    |\n\n# Jupyter Integration\n\nIn order to use this module in JupyterLab and Notebook 7.0.0+, install it as follows:\n\n```bash\nmcmartins@local:~$ pip install -U jupyterlab-francy\n```\n\nIf you still use the old Jupyter Notebook (\u003c7.0.0), you should use the old extension v1.2.4:\n\n```bash\nmcmartins@local:~$ pip install -U jupyter-francy\n```\n\nPlease note that in order to use Francy, it is required the JupyterKernel GAP package to be installed. \nSee [Jupyter GAP Kernel](https://github.com/gap-packages/JupyterKernel) for more information.\n\n# Package Structure\n\n|Directory   |Description                                                     |\n|:-----------|:---------------------------------------------------------------|\n| tst        | contains gap code tests                                        |\n| schema     | contains the francy JSON Schema                                |\n| notebooks  | contains some notebooks with francy examples                   |\n| js         | contains the source code of francy-js                          |\n| gap        | contains the source code of francy-gap                         |\n| examples   | contains examples used throughout francy-gap documentation     |\n| doc        | contains introductory documentation for francy-gap             |\n\n# Other projects based or inspired by Francy\n\n| Project                                                    | Author                                           | Description                                              |\n|:-----------------------------------------------------------|:-------------------------------------------------|:---------------------------------------------------------|\n| [Jupyterviz](https://github.com/nathancarter/jupyterviz)   | [Nathan Carter](https://github.com/nathancarter) | Provides general purpose visualization tools             |                            \n| [Francy Julia](https://github.com/fieker/Francy)           | [Claus Fieker](https://github.com/fieker)        | Francy ported to Julia language                          |\n| [Francy Widgets](https://github.com/zerline/francy-widget) | [Odile Bénassy](https://github.com/zerline)      | Francy Python adapter for representing graphs in Jupyter |\n\n## Releasing\n\nAll developments should happen on the branch `develop` and this should be merged into `master` when one is happy to release.\n\nTo update the JS packages version, run the following command and pick the new version:\n\n```bash\nuser@local js/ $ yarn run version\n```\n\nTo update the Python PyPi.org package version please update the version on:\n\n* `js/packages/francy-extension-jupyterlab/pypproject.toml`\n\nTo release, the official [ReleaseTools](https://github.com/gap-system/ReleaseTools) procedure should be followed.\n\nThere are 2 workflows defined for this project:\n\n* CI - This workflow runs all tests (JS and GAP) for every commit/pull request on branches `develop` and `master`\n* RELEASE - This workflow runs the Python PyPi.org and NPM releases on new `tag`s created, normally after running the \n* [ReleaseTools](https://github.com/gap-system/ReleaseTools) procedure.\n\n# License\n\n[MIT](LICENSE) License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgap-packages%2Ffrancy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgap-packages%2Ffrancy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgap-packages%2Ffrancy/lists"}