diff --git a/requirements.txt b/requirements.txt index d58acb24..4eff006f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,6 @@ libpysal mapclassify matplotlib numpy -pandana pandas pip pygeos @@ -14,6 +13,5 @@ scikit-learn>=0.21.3 scipy seaborn tqdm -urbanaccess -rvlib +rvlib>=0.0.5 numba diff --git a/segregation/__init__.py b/segregation/__init__.py index d108b51e..08cc1b84 100644 --- a/segregation/__init__.py +++ b/segregation/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2.0.0" +__version__ = "2.1.0" """ :mod:`segregation` --- Spatial/Aspatial Segregation Analysis ================================================= diff --git a/tools/gitcount.ipynb b/tools/gitcount.ipynb index 69ccd66c..09c411eb 100644 --- a/tools/gitcount.ipynb +++ b/tools/gitcount.ipynb @@ -2,7 +2,6 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, "source": [ "## `segregation` Change Log Statistics\n", "\n", @@ -10,52 +9,75 @@ "\n", "It assumes you are running this under the `tools` directory at the toplevel of the package\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "# get date of last tag\n", "from subprocess import Popen, PIPE\n", "x, err = Popen('git log -1 --tags --simplify-by-decoration --pretty=\"%ai\"| cat', stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True).communicate()\n", "start_date = x.split()[0].decode('utf-8')" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:32.325617Z", + "iopub.status.busy": "2021-07-26T23:03:32.325376Z", + "iopub.status.idle": "2021-07-26T23:03:32.597821Z", + "shell.execute_reply": "2021-07-26T23:03:32.596840Z", + "shell.execute_reply.started": "2021-07-26T23:03:32.325595Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "# today's date\n", "import datetime\n", "release_date = str(datetime.datetime.today()).split()[0]" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:32.599243Z", + "iopub.status.busy": "2021-07-26T23:03:32.599036Z", + "iopub.status.idle": "2021-07-26T23:03:32.604888Z", + "shell.execute_reply": "2021-07-26T23:03:32.604225Z", + "shell.execute_reply.started": "2021-07-26T23:03:32.599222Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "package_name = 'segregation'" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:32.606330Z", + "iopub.status.busy": "2021-07-26T23:03:32.606014Z", + "iopub.status.idle": "2021-07-26T23:03:32.609801Z", + "shell.execute_reply": "2021-07-26T23:03:32.608592Z", + "shell.execute_reply.started": "2021-07-26T23:03:32.606313Z" + } + } }, { "cell_type": "markdown", - "metadata": {}, "source": [ "This notebook will generate a file in the current directory with the name \"changelog_VERSION.md\". You can edit and append this on front of the CHANGELOG file for the package release." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "from __future__ import print_function\n", "import os\n", @@ -76,43 +98,75 @@ "import yaml\n", "\n", "context = ssl._create_unverified_context()\n" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:32.611030Z", + "iopub.status.busy": "2021-07-26T23:03:32.610835Z", + "iopub.status.idle": "2021-07-26T23:03:33.036139Z", + "shell.execute_reply": "2021-07-26T23:03:33.035470Z", + "shell.execute_reply.started": "2021-07-26T23:03:32.611010Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "CWD = os.path.abspath(os.path.curdir)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.040458Z", + "iopub.status.busy": "2021-07-26T23:03:33.040210Z", + "iopub.status.idle": "2021-07-26T23:03:33.043289Z", + "shell.execute_reply": "2021-07-26T23:03:33.042663Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.040438Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "CWD" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.045913Z", + "iopub.status.busy": "2021-07-26T23:03:33.045617Z", + "iopub.status.idle": "2021-07-26T23:03:33.054507Z", + "shell.execute_reply": "2021-07-26T23:03:33.053970Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.045887Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "since_date = '--since=\"{start}\"'.format(start=start_date)\n", "since_date\n", "since = datetime.strptime(start_date+\" 0:0:0\", \"%Y-%m-%d %H:%M:%S\")\n", "since" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.055709Z", + "iopub.status.busy": "2021-07-26T23:03:33.055493Z", + "iopub.status.idle": "2021-07-26T23:03:33.060336Z", + "shell.execute_reply": "2021-07-26T23:03:33.059799Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.055690Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "# get __version__\n", "f = \"../{package}/__init__.py\".format(package=package_name)\n", @@ -120,53 +174,77 @@ "with open(f, 'r') as initfile:\n", " exec(initfile.readline())\n", " " - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.061727Z", + "iopub.status.busy": "2021-07-26T23:03:33.061295Z", + "iopub.status.idle": "2021-07-26T23:03:33.066524Z", + "shell.execute_reply": "2021-07-26T23:03:33.065859Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.061680Z" + } + } }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Total commits by subpackage" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "cmd = ['git', 'log', '--oneline', since_date]\n", "ncommits = len(check_output(cmd).splitlines())" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.067838Z", + "iopub.status.busy": "2021-07-26T23:03:33.067622Z", + "iopub.status.idle": "2021-07-26T23:03:33.118480Z", + "shell.execute_reply": "2021-07-26T23:03:33.117350Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.067818Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "ncommits" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.120132Z", + "iopub.status.busy": "2021-07-26T23:03:33.119901Z", + "iopub.status.idle": "2021-07-26T23:03:33.123944Z", + "shell.execute_reply": "2021-07-26T23:03:33.123247Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.120108Z" + } + } }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## List Contributors" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Some of our contributors have many aliases for the same identity. So, we've added a mapping to make sure that individuals are listed once (and only once). " - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "identities = {'Levi John Wolf': ('ljwolf', 'Levi John Wolf'),\n", " 'Serge Rey': ('Serge Rey', 'Sergio Rey', 'sjsrey', 'serge'),\n", @@ -183,31 +261,55 @@ " if len(string.split(' '))>1:\n", " string = string.title()\n", " return string.lstrip('* ')" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.125471Z", + "iopub.status.busy": "2021-07-26T23:03:33.125162Z", + "iopub.status.idle": "2021-07-26T23:03:33.132875Z", + "shell.execute_reply": "2021-07-26T23:03:33.132009Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.125448Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "author_cmd = ['git', 'log', '--format=* %aN', since_date]" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.134449Z", + "iopub.status.busy": "2021-07-26T23:03:33.134059Z", + "iopub.status.idle": "2021-07-26T23:03:33.137246Z", + "shell.execute_reply": "2021-07-26T23:03:33.136585Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.134425Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "from collections import Counter" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.138475Z", + "iopub.status.busy": "2021-07-26T23:03:33.138178Z", + "iopub.status.idle": "2021-07-26T23:03:33.140889Z", + "shell.execute_reply": "2021-07-26T23:03:33.140213Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.138455Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "\n", "ncommits = len(check_output(cmd).splitlines())\n", @@ -216,51 +318,83 @@ "# global_counter += counter\n", "# counters.update({'.'.join((package,subpackage)): counter})\n", "unique_authors = sorted(set(all_authors))\n" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.141999Z", + "iopub.status.busy": "2021-07-26T23:03:33.141730Z", + "iopub.status.idle": "2021-07-26T23:03:33.199583Z", + "shell.execute_reply": "2021-07-26T23:03:33.198212Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.141978Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "unique_authors = counter.keys()" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.201226Z", + "iopub.status.busy": "2021-07-26T23:03:33.200994Z", + "iopub.status.idle": "2021-07-26T23:03:33.205053Z", + "shell.execute_reply": "2021-07-26T23:03:33.204022Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.201202Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "unique_authors" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.206463Z", + "iopub.status.busy": "2021-07-26T23:03:33.206247Z", + "iopub.status.idle": "2021-07-26T23:03:33.211326Z", + "shell.execute_reply": "2021-07-26T23:03:33.210741Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.206443Z" + } + } }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Disaggregate by PR, Issue" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "from datetime import datetime, timedelta\n", "ISO8601 = \"%Y-%m-%dT%H:%M:%SZ\"\n", "PER_PAGE = 100\n", "element_pat = re.compile(r'<(.+?)>')\n", "rel_pat = re.compile(r'rel=[\\'\"](\\w+)[\\'\"]')\n" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.212571Z", + "iopub.status.busy": "2021-07-26T23:03:33.212303Z", + "iopub.status.idle": "2021-07-26T23:03:33.217854Z", + "shell.execute_reply": "2021-07-26T23:03:33.217238Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.212547Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "\n", "def parse_link_header(headers):\n", @@ -283,7 +417,7 @@ " url = links.get('next')\n", " return results\n", "\n", - "def get_issues(project=\"pysal/pysal\", state=\"closed\", pulls=False):\n", + "def get_issues(project=\"pysal/segregation\", state=\"closed\", pulls=False):\n", " \"\"\"Get a list of the issues from the Github API.\"\"\"\n", " which = 'pulls' if pulls else 'issues'\n", " url = \"https://api.github.com/repos/%s/%s?state=%s&per_page=%i\" % (project, which, state, PER_PAGE)\n", @@ -311,7 +445,7 @@ " return 'pull_request_url' in issue\n", "\n", "\n", - "def issues_closed_since(period=timedelta(days=365), project=\"pysal/pysal\", pulls=False):\n", + "def issues_closed_since(period=timedelta(days=365), project=\"pysal/segregation\", pulls=False):\n", " \"\"\"Get all issues closed since a particular point in time. period\n", "can either be a datetime object, or a timedelta object. In the\n", "latter case, it is used as a time before the present.\"\"\"\n", @@ -350,13 +484,21 @@ " for i in issues:\n", " print('* %d: %s' % (i['number'], i['title'].encode('utf-8')))\n", "\n" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.219072Z", + "iopub.status.busy": "2021-07-26T23:03:33.218860Z", + "iopub.status.idle": "2021-07-26T23:03:33.232593Z", + "shell.execute_reply": "2021-07-26T23:03:33.231574Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.219051Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "\n", "all_issues = {}\n", @@ -370,200 +512,345 @@ "pulls = sorted_by_field(pulls, reverse=True)\n", "n_issues, n_pulls = map(len, (issues, pulls))\n", "n_total = n_issues + n_pulls\n" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:33.234112Z", + "iopub.status.busy": "2021-07-26T23:03:33.233826Z", + "iopub.status.idle": "2021-07-26T23:03:41.419941Z", + "shell.execute_reply": "2021-07-26T23:03:41.418651Z", + "shell.execute_reply.started": "2021-07-26T23:03:33.234091Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "issue_listing = []\n", "for issue in issues:\n", " entry = \"{title} (#{number})\".format(title=issue['title'],number=issue['number'])\n", " issue_listing.append(entry)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.421686Z", + "iopub.status.busy": "2021-07-26T23:03:41.421350Z", + "iopub.status.idle": "2021-07-26T23:03:41.426221Z", + "shell.execute_reply": "2021-07-26T23:03:41.425460Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.421654Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "pull_listing = []\n", "for pull in pulls:\n", " entry = \"{title} (#{number})\".format(title=pull['title'],number=pull['number'])\n", " pull_listing.append(entry)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.427593Z", + "iopub.status.busy": "2021-07-26T23:03:41.427316Z", + "iopub.status.idle": "2021-07-26T23:03:41.431489Z", + "shell.execute_reply": "2021-07-26T23:03:41.430737Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.427571Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "pull_listing" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.432740Z", + "iopub.status.busy": "2021-07-26T23:03:41.432525Z", + "iopub.status.idle": "2021-07-26T23:03:41.436418Z", + "shell.execute_reply": "2021-07-26T23:03:41.435774Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.432720Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "message = \"We closed a total of {total} issues (enhancements and bug fixes) through {pr} pull requests\".format(total=n_total, pr=n_pulls)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.443185Z", + "iopub.status.busy": "2021-07-26T23:03:41.442942Z", + "iopub.status.idle": "2021-07-26T23:03:41.446459Z", + "shell.execute_reply": "2021-07-26T23:03:41.445780Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.443165Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "message = \"{msg}, since our last release on {previous}.\".format(msg=message, previous=str(start_date))\n" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.450500Z", + "iopub.status.busy": "2021-07-26T23:03:41.450220Z", + "iopub.status.idle": "2021-07-26T23:03:41.453822Z", + "shell.execute_reply": "2021-07-26T23:03:41.452743Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.450475Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "message" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.455336Z", + "iopub.status.busy": "2021-07-26T23:03:41.455113Z", + "iopub.status.idle": "2021-07-26T23:03:41.508968Z", + "shell.execute_reply": "2021-07-26T23:03:41.508206Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.455315Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "message += \"\\n\\n## Issues Closed\\n\"" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.510381Z", + "iopub.status.busy": "2021-07-26T23:03:41.510129Z", + "iopub.status.idle": "2021-07-26T23:03:41.535471Z", + "shell.execute_reply": "2021-07-26T23:03:41.534304Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.510358Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "print(message)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.538524Z", + "iopub.status.busy": "2021-07-26T23:03:41.537851Z", + "iopub.status.idle": "2021-07-26T23:03:41.542892Z", + "shell.execute_reply": "2021-07-26T23:03:41.541762Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.538451Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "issues = \"\\n\".join([\" - \"+issue for issue in issue_listing])\n", "message += issues\n", "message += \"\\n\\n## Pull Requests\\n\"\n", "pulls = \"\\n\".join([\" - \"+pull for pull in pull_listing])\n", "message += pulls" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.544340Z", + "iopub.status.busy": "2021-07-26T23:03:41.544032Z", + "iopub.status.idle": "2021-07-26T23:03:41.547722Z", + "shell.execute_reply": "2021-07-26T23:03:41.547091Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.544319Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "print(message)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.548864Z", + "iopub.status.busy": "2021-07-26T23:03:41.548644Z", + "iopub.status.idle": "2021-07-26T23:03:41.551845Z", + "shell.execute_reply": "2021-07-26T23:03:41.551139Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.548841Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "people = \"\\n\".join([\" - \"+person for person in unique_authors])" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.553073Z", + "iopub.status.busy": "2021-07-26T23:03:41.552847Z", + "iopub.status.idle": "2021-07-26T23:03:41.556106Z", + "shell.execute_reply": "2021-07-26T23:03:41.555416Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.553053Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "print(people)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.557434Z", + "iopub.status.busy": "2021-07-26T23:03:41.557118Z", + "iopub.status.idle": "2021-07-26T23:03:41.562401Z", + "shell.execute_reply": "2021-07-26T23:03:41.561605Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.557408Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "message +=\"\\n\\nThe following individuals contributed to this release:\\n\\n{people}\".format(people=people)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.563666Z", + "iopub.status.busy": "2021-07-26T23:03:41.563447Z", + "iopub.status.idle": "2021-07-26T23:03:41.567247Z", + "shell.execute_reply": "2021-07-26T23:03:41.566579Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.563645Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "print(message)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.568432Z", + "iopub.status.busy": "2021-07-26T23:03:41.568157Z", + "iopub.status.idle": "2021-07-26T23:03:41.589337Z", + "shell.execute_reply": "2021-07-26T23:03:41.588766Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.568411Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "head = \"# Changes\\n\\nVersion {version} ({release_date})\\n\\n\".format(version=__version__, release_date=release_date)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.590586Z", + "iopub.status.busy": "2021-07-26T23:03:41.590365Z", + "iopub.status.idle": "2021-07-26T23:03:41.593793Z", + "shell.execute_reply": "2021-07-26T23:03:41.593125Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.590565Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "print(head+message)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.595023Z", + "iopub.status.busy": "2021-07-26T23:03:41.594733Z", + "iopub.status.idle": "2021-07-26T23:03:41.598299Z", + "shell.execute_reply": "2021-07-26T23:03:41.597726Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.594981Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "outfile = 'changelog.md'\n", "with open(outfile, 'w') as of:\n", " of.write(head+message)" - ] + ], + "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2021-07-26T23:03:41.599480Z", + "iopub.status.busy": "2021-07-26T23:03:41.599275Z", + "iopub.status.idle": "2021-07-26T23:03:41.662241Z", + "shell.execute_reply": "2021-07-26T23:03:41.661220Z", + "shell.execute_reply.started": "2021-07-26T23:03:41.599460Z" + } + } }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "source": [], "outputs": [], - "source": [] + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "source": [], "outputs": [], - "source": [] + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "source": [], "outputs": [], - "source": [] + "metadata": {} } ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:segregation]", - "language": "python", - "name": "conda-env-segregation-py" + "name": "python3", + "display_name": "Python 3.9.6 64-bit ('segregation': conda)" }, "language_info": { "codemirror_mode": { @@ -575,7 +862,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.9.6" }, "widgets": { "application/vnd.jupyter.widget-state+json": { @@ -583,8 +870,11 @@ "version_major": 2, "version_minor": 0 } + }, + "interpreter": { + "hash": "d1440a0eb4154dbdaa59393b3cfb390a496e35222326bd14202809e730d3c461" } }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file