{"id":46627367,"url":"https://github.com/novem-code/novem-python","last_synced_at":"2026-05-10T01:30:29.927Z","repository":{"id":243484729,"uuid":"697654873","full_name":"novem-code/novem-python","owner":"novem-code","description":"python command-line interface for interacting with the novem.io data visualisation platform","archived":false,"fork":false,"pushed_at":"2026-03-23T13:10:10.000Z","size":1329,"stargazers_count":4,"open_issues_count":14,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-03-24T08:30:08.253Z","etag":null,"topics":["analytics","datavisualization","e-mailing","pandas","terminal","terminal-charts"],"latest_commit_sha":null,"homepage":"https://novem.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/novem-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-28T07:48:16.000Z","updated_at":"2026-03-23T13:10:15.000Z","dependencies_parsed_at":"2025-12-18T19:08:10.187Z","dependency_job_id":null,"html_url":"https://github.com/novem-code/novem-python","commit_stats":null,"previous_names":["novem-code/novem-python"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/novem-code/novem-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novem-code%2Fnovem-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novem-code%2Fnovem-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novem-code%2Fnovem-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novem-code%2Fnovem-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novem-code","download_url":"https://codeload.github.com/novem-code/novem-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novem-code%2Fnovem-python/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31522574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["analytics","datavisualization","e-mailing","pandas","terminal","terminal-charts"],"created_at":"2026-03-07T23:02:29.592Z","updated_at":"2026-04-07T18:01:35.236Z","avatar_url":"https://github.com/novem-code.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# novem - data visualisation for coders\n\nA wrapper library for the novem.no data visualisation platform. Create charts,\ndocuments, e-mails and dashboards through one simple API.\n\n**NB:** novem is currently in closed alpha, if you want to try it out please\nreach out to hello@novem.no\n\n\n## Exampels\n\nCreate a linechart from a dataframe using pandas data reader\n\n```python\nfrom pandas_datareader import data\nfrom novem import Plot\n\nline = Plot(\"aapl_price_hist\", type=\"line\", name=\"Apple price history\")\n\n# Only get the adjusted close.\naapl = data.DataReader(\"AAPL\",\n                       start=\"2015-1-1\",\n                       end=\"2021-12-31\",\n                       data_source=\"yahoo\")[\"Adj Close\"]\n\n# send data to the plot\naapl.pipe(line)\n\n# url to view plot\nprint(line.url)\n```\n\n\n## Getting started\nTo get started with novem you will have to register an account. Please\n[reach out](mailto:hello@novem.no) to us!\n\nOnce you have a username and password you can setup your environment using:\n```bash\n  python -m novem --init\n```\n\nIn addition to invoking the novem module as shown above, the novem package also\nincludes an extensive command-line interface (cli). Check out CLI.md in this\nrepository or [novem.io](https://novem.io) for more details.\n\n\n\n## Creating a plot\nNovem represents plots as a `Plot` class that can be imported from the main\nnovem package `from novem import Plot`.\n\nThe `Plot` class takes a single mandatory positional argument, the name of the\nplot.\n * If the plot name is new, the instantiation of the class will create the plot.\n * If the plot name already exist, then the new object will operate on the\n   existing plot.\n\nIn addition to the name, there are two broad categories of options for a\nplot: data and config.\n * The **data** contains the actual information to visualise (usually in the form\n   of numeric csv)\n * **Config**, which contains information about the visual such as:\n   * Type (bar, line, donut, map etc)\n   * Titles/captions/names/colors/legends/axis etc\n\n\nThere are two ways to interact with the plots, one can either supply all\nthe necessary options as named arguments when creating the plot, or use the\nproperty accessors to modify them one by one (this is more helpful when working\nwith the plot interactively). Below is an example of both approaches.\n\n```python\nfrom novem import Plot\n\n# everything in the constructor\nbarchart = Plot(\u003cname\u003e, \\\n  type=\"bar\", \\\n  title=\"barchart title\", \\\n  caption = \"caption\"\n)\n\n# property approach\nbarchart = Plot(\"plot_name\")\nbarchart.type = \"bar\"\nbarchart.title = \"barchart title\"\nbarchart.caption = \"caption\"\n```\n\nIn addition to setting individual properties, the `Plot` object is also\ncallable.  This means that the resulting plot can be used as a function, either\nby being provided data as an argument, or used as part of a pipe chain.\n\n```python\nfrom novem import Plot\nimport pandas as pd\nimport numpy as np\n\n# construct some random sample data\ndf = pd.DataFrame(np.random.randn(100, 4), columns=list(\"ABCD\")).cumsum()\n\nline = Plot(\"new_line\", type=\"line\")\n\n# alternative one, setting data explicitly to a csv string\nline.data = df.to_csv()\n\n# or let the plot invoke the to_csv\nline.data = df\n\n# alternative two, calling Plot with a csv string\nline(df.to_csv())\n\n# alternative three calling the Plot with an object that has a to_csv function\nline(df)\n\n# or\ndf.pipe(line)\n\n```\n\n\n**NB:** All novem plot operations are live.\nThis means that as soon as you write to or modify any aspects of the plot\nobject, those changes are reflected on the novem server and anyone watching\nthe plot in real time.\n\n\n\n## Contribution and development\nThe novem python library and platform is under active development, contributions\nor issues are most welcome.\n\nFor guidelines on how to contribute, please check out the CONTRIBUTING.md file\nin this repository.\n\n\n## LICENSE\nThis python library is licensed under the MIT license, see the LICENSE file for\ndetails.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovem-code%2Fnovem-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovem-code%2Fnovem-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovem-code%2Fnovem-python/lists"}