Add files via upload
This commit is contained in:
parent
9a4949ee01
commit
af672ed94a
File diff suppressed because it is too large
Load Diff
@ -67,15 +67,28 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"execution_count": 7,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "NameError",
|
||||
"evalue": "name 'whole' is not defined",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
|
||||
"Cell \u001b[0;32mIn[7], line 6\u001b[0m\n\u001b[1;32m 3\u001b[0m lines \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m\u001b[38;5;241m.\u001b[39msplitlines \u001b[38;5;66;03m# By default, split input text into lines\u001b[39;00m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mparagraphs\u001b[39m(text): \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSplit text into paragraphs\u001b[39m\u001b[38;5;124m\"\u001b[39m; \u001b[38;5;28;01mreturn\u001b[39;00m text\u001b[38;5;241m.\u001b[39msplit(\u001b[38;5;124m'\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m----> 6\u001b[0m whole\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mparse\u001b[39m(day_or_text:Union[\u001b[38;5;28mint\u001b[39m, \u001b[38;5;28mstr\u001b[39m], parser\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m, sections\u001b[38;5;241m=\u001b[39mlines, show\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m8\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mtuple\u001b[39m:\n\u001b[1;32m 9\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Split the input text into `sections`, and apply `parser` to each.\u001b[39;00m\n\u001b[1;32m 10\u001b[0m \u001b[38;5;124;03m The first argument is either the text itself, or the day number of a text file.\"\"\"\u001b[39;00m\n",
|
||||
"\u001b[0;31mNameError\u001b[0m: name 'whole' is not defined"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"current_year = 2023 # Subdirectory name for input files\n",
|
||||
"\n",
|
||||
"lines = str.splitlines # By default, split input text into lines\n",
|
||||
"\n",
|
||||
"def paragraphs(text): \"Split text into paragraphs\"; return text.split('\\n\\n')\n",
|
||||
"def whole(text): \"The whole text\"; return [text]\n",
|
||||
"\n",
|
||||
"def parse(day_or_text:Union[int, str], parser=str, sections=lines, show=8) -> tuple:\n",
|
||||
" \"\"\"Split the input text into `sections`, and apply `parser` to each.\n",
|
||||
@ -541,12 +554,16 @@
|
||||
" 0 <= Y_(point) < Y_(self.size))\n",
|
||||
"\n",
|
||||
" def follow_line(self, start: Point, direction: Vector) -> Iterable[Point]:\n",
|
||||
" \"\"\"All points from start going in direction, until the edge of the grid.\"\"\"\n",
|
||||
" while self.in_range(start):\n",
|
||||
" yield start\n",
|
||||
" start = add(start, direction)\n",
|
||||
"\n",
|
||||
" def copy(self): \n",
|
||||
" return Grid(self, directions=self.directions, skip=self.skip, default=self.default)\n",
|
||||
" def copy(self, updates={}): \n",
|
||||
" \"\"\"Make a copy of this grid, and optionally update some positions with new values.\"\"\"\n",
|
||||
" grid = Grid(self, directions=self.directions, skip=self.skip, default=self.default)\n",
|
||||
" grid.update(updates)\n",
|
||||
" return grid\n",
|
||||
" \n",
|
||||
" def neighbors(self, point) -> List[Point]:\n",
|
||||
" \"\"\"Points on the grid that neighbor `point`.\"\"\"\n",
|
||||
|
Loading…
Reference in New Issue
Block a user