diff --git a/content/roadmaps/108-python/content-paths.json b/content/roadmaps/108-python/content-paths.json index d32096bd4..da1091fdc 100644 --- a/content/roadmaps/108-python/content-paths.json +++ b/content/roadmaps/108-python/content-paths.json @@ -35,6 +35,7 @@ "python-package-managers": "/roadmaps/108-python/content/105-python-package-managers/readme.md", "python-package-managers:pypi": "/roadmaps/108-python/content/105-python-package-managers/100-pypi.md", "python-package-managers:pip": "/roadmaps/108-python/content/105-python-package-managers/101-pip.md", + "python-package-managers:conda": "/roadmaps/108-python/content/105-python-package-managers/102-conda.md", "python-frameworks": "/roadmaps/108-python/content/106-python-frameworks/readme.md", "python-frameworks:fastapi": "/roadmaps/108-python/content/106-python-frameworks/102-fastapi.md", "python-frameworks:synchronous": "/roadmaps/108-python/content/106-python-frameworks/100-synchronous/readme.md", @@ -50,5 +51,6 @@ "python-testing:unittest-pyunit": "/roadmaps/108-python/content/107-python-testing/100-unittest-pyunit.md", "python-testing:pytest": "/roadmaps/108-python/content/107-python-testing/101-pytest.md", "python-testing:doctest": "/roadmaps/108-python/content/107-python-testing/102-doctest.md", - "python-testing:nose": "/roadmaps/108-python/content/107-python-testing/102-nose.md" + "python-testing:nose": "/roadmaps/108-python/content/107-python-testing/102-nose.md", + "python-roadmap-note": "/roadmaps/108-python/content/100-roadmap-note.md" } diff --git a/content/roadmaps/108-python/content/100-roadmap-note.md b/content/roadmaps/108-python/content/100-roadmap-note.md new file mode 100644 index 000000000..73bc06e31 --- /dev/null +++ b/content/roadmaps/108-python/content/100-roadmap-note.md @@ -0,0 +1,4 @@ +# Note + +This roadmap specifically covers **Python and the ecosystem** around it. You will notice that it is missing things like version control, databases, software design, architecture and other things that are not directly related to Python; this is intentional. Have a look at the [Backend Roadmap](/roadmaps/backend) for a more comprehensive overview of the frontend ecosystem. + diff --git a/content/roadmaps/108-python/content/105-python-package-managers/102-conda.md b/content/roadmaps/108-python/content/105-python-package-managers/102-conda.md new file mode 100644 index 000000000..353b0167b --- /dev/null +++ b/content/roadmaps/108-python/content/105-python-package-managers/102-conda.md @@ -0,0 +1,9 @@ +# Conda + +Conda is an open source package management system and environment management system that runs on Windows, macOS, and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language. + +Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python, you do not need to switch to a different environment manager, because conda is also an environment manager. With just a few commands, you can set up a totally separate environment to run that different version of Python, while continuing to run your usual version of Python in your normal environment. + +Free Content +Conda Docs + diff --git a/public/project/python.json b/public/project/python.json index 06d924c86..4a625ef3d 100644 --- a/public/project/python.json +++ b/public/project/python.json @@ -3,152 +3,134 @@ "controls": { "control": [ { - "ID": "13446", + "ID": "14755", "typeID": "Arrow", - "zOrder": "81", + "zOrder": "0", "w": "1", - "h": "98", + "h": "82", "measuredW": "150", "measuredH": "100", - "x": "819", - "y": "1314", + "x": "1136", + "y": "1104", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", "color": "10027263", "p0": { - "x": -0.5, - "y": -0.5 + "x": 0, + "y": -0.24280136823927023 }, "p1": { - "x": 0.5259259259259262, - "y": 0 + "x": 0.4604452230239245, + "y": 0.003676653605416392 }, "p2": { - "x": -0.5, - "y": 97 + "x": 0, + "y": 82 }, "stroke": "dotted" } }, { - "ID": "13459", - "typeID": "__group__", - "zOrder": "85", - "measuredW": "148", - "measuredH": "42", - "w": "148", - "h": "42", - "x": "762", - "y": "861", + "ID": "14756", + "typeID": "Arrow", + "zOrder": "1", + "w": "199", + "h": "108", + "measuredW": "150", + "measuredH": "100", + "x": "847", + "y": "1065", "properties": { - "controlName": "100-python-package-managers:pypi" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "148", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "33", - "measuredH": "24", - "x": "57", - "y": "9", - "properties": { - "size": "16", - "text": "PyPI" - } - } - ] + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": -0.5, + "y": 0 + }, + "p1": { + "x": 0.3700657239593706, + "y": -0.20041824337781317 + }, + "p2": { + "x": 198.5, + "y": 108 } } }, { - "ID": "13473", + "ID": "14757", "typeID": "Arrow", - "zOrder": "71", - "w": "1", - "h": "77", + "zOrder": "2", + "w": "101", + "h": "24", "measuredW": "150", "measuredH": "100", - "x": "414", - "y": "706", + "x": "418", + "y": "1047", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "color": "10027263", + "stroke": "dotted", "p0": { "x": 0, - "y": 76.5 + "y": 24.5 }, "p1": { - "x": 0.5494505494505496, - "y": 0 + "x": 0.4704601401249764, + "y": 0.0798144290854005 }, "p2": { - "x": 0, - "y": -0.5 + "x": 101, + "y": 0.5 } } }, { - "ID": "13481", + "ID": "14758", "typeID": "Arrow", - "zOrder": "25", - "w": "120", - "h": "45", + "zOrder": "3", + "w": "129", + "h": "166", "measuredW": "150", "measuredH": "100", - "x": "861", - "y": "407", + "x": "424", + "y": "1110", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "color": "10027263", + "stroke": "dotted", "p0": { - "x": 120, - "y": 0 + "x": 0, + "y": 165.5 }, "p1": { - "x": 0.5537800308573948, - "y": 0.04485342737491732 + "x": 0.5753331674095528, + "y": 0.07360228069778492 }, "p2": { - "x": 0, - "y": 45 + "x": 129, + "y": -0.5 } } }, { - "ID": "13482", + "ID": "14759", "typeID": "Arrow", - "zOrder": "26", - "w": "120", - "h": "44", + "zOrder": "4", + "w": "86", + "h": "27", "measuredW": "150", "measuredH": "100", - "x": "857", - "y": "465", + "x": "679", + "y": "1037", "properties": { "curvature": "0", "leftArrow": "false", @@ -156,12 +138,12 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 120, - "y": 44 + "x": 85.5, + "y": 27 }, "p1": { - "x": 0.5846756207563067, - "y": -0.036972790801407494 + "x": 0.5986120996441281, + "y": 0.12644128113878994 }, "p2": { "x": 0, @@ -170,15 +152,15 @@ } }, { - "ID": "13483", + "ID": "14760", "typeID": "Arrow", - "zOrder": "27", - "w": "99", - "h": "50", + "zOrder": "5", + "w": "87", + "h": "28", "measuredW": "150", "measuredH": "100", - "x": "545", - "y": "406", + "x": "679", + "y": "1073", "properties": { "curvature": "0", "leftArrow": "false", @@ -186,162 +168,817 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 98, - "y": 50 + "x": 86.5, + "y": 0 }, "p1": { - "x": 0.598612099644128, - "y": 0.12644128113878997 + "x": 0.6497109826589595, + "y": -0.08978805394990365 }, "p2": { - "x": -0.5, - "y": 0 + "x": 0, + "y": 28 } } }, { - "ID": "13484", + "ID": "14761", "typeID": "Arrow", - "zOrder": "28", - "w": "99", - "h": "50", + "zOrder": "6", + "w": "1", + "h": "352", "measuredW": "150", "measuredH": "100", - "x": "546", - "y": "462", + "x": "845", + "y": "716", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "color": "10027263", "p0": { - "x": 98, - "y": 0 + "x": 0, + "y": -0.24280136823927023 }, "p1": { - "x": 0.6551455674158455, - "y": -0.1193632321907845 + "x": 0.4604452230239245, + "y": 0.0036766536054163917 }, "p2": { - "x": -0.5, - "y": 50 + "x": 0, + "y": 352 } } }, { - "ID": "13485", + "ID": "14762", "typeID": "Arrow", - "zOrder": "29", - "w": "115", - "h": "3", + "zOrder": "7", + "w": "214", + "h": "141", "measuredW": "150", "measuredH": "100", - "x": "534", - "y": "457", + "x": "827", + "y": "1184", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "color": "10027263", "p0": { - "x": 115, - "y": 1 + "x": 214.5, + "y": 0 }, "p1": { - "x": 0.5085059730833207, - "y": 0.02181309541811583 + "x": 0.5712545436900968, + "y": -0.21227347450676648 }, "p2": { - "x": 0, - "y": 0 + "x": 0.20376246056980563, + "y": 141.43444344459454 } } }, { - "ID": "13486", + "ID": "14763", "typeID": "Arrow", - "zOrder": "30", - "w": "143", - "h": "3", + "zOrder": "8", + "w": "110", + "h": "112", "measuredW": "150", "measuredH": "100", - "x": "837", - "y": "457", + "x": "422", + "y": "920", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "color": "10027263", + "stroke": "dotted", "p0": { - "x": 143, + "x": -0.5, "y": 0 }, "p1": { - "x": 0.5536354056902003, - "y": 0.01338250790305583 + "x": 0.49256306145204387, + "y": -0.1262491321818526 }, "p2": { - "x": 0, - "y": 2 + "x": 109, + "y": 111.5 } } }, { - "ID": "13487", - "typeID": "Label", - "zOrder": "31", - "measuredW": "87", - "measuredH": "36", - "x": "691", - "y": "338", + "ID": "14764", + "typeID": "Arrow", + "zOrder": "9", + "w": "123", + "h": "133", + "measuredW": "150", + "measuredH": "100", + "x": "424", + "y": "1107", "properties": { - "text": "Python", - "size": "28" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 133 + }, + "p1": { + "x": 0.4810165153269547, + "y": 0.11402279237004083 + }, + "p2": { + "x": 123, + "y": 0 + } } }, { - "ID": "13488", + "ID": "14765", "typeID": "Arrow", - "zOrder": "32", - "w": "1", - "h": "55", + "zOrder": "10", + "w": "106", + "h": "93", "measuredW": "150", "measuredH": "100", - "x": "734", - "y": "390", + "x": "425", + "y": "1102", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", "color": "10027263", + "stroke": "dotted", "p0": { "x": 0, - "y": -0.24280136823927023 + "y": 93 }, "p1": { - "x": 0.4604452230239243, - "y": 0.003676653605416392 + "x": 0.40844857933115414, + "y": 0.13221020870002514 }, "p2": { - "x": 0, - "y": 55 + "x": 106, + "y": 0 } } }, { - "ID": "13489", - "typeID": "__group__", - "zOrder": "33", - "measuredW": "262", - "measuredH": "43", - "w": "262", - "h": "43", - "x": "614", - "y": "437", - "properties": { + "ID": "14766", + "typeID": "Arrow", + "zOrder": "11", + "w": "105", + "h": "45", + "measuredW": "150", + "measuredH": "100", + "x": "419", + "y": "1104", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 45 + }, + "p1": { + "x": 0.3839080459770115, + "y": 0.14022988505747125 + }, + "p2": { + "x": 105, + "y": 0 + } + } + }, + { + "ID": "14767", + "typeID": "Arrow", + "zOrder": "12", + "w": "91", + "h": "19", + "measuredW": "150", + "measuredH": "100", + "x": "418", + "y": "1074", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.4292794822430673, + "y": -0.0842174251423423 + }, + "p2": { + "x": 91, + "y": 17.5 + } + } + }, + { + "ID": "14768", + "typeID": "Arrow", + "zOrder": "13", + "w": "105", + "h": "60", + "measuredW": "150", + "measuredH": "100", + "x": "423", + "y": "973", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.5, + "y": 0 + }, + "p1": { + "x": 0.39794612911033506, + "y": -0.1274852183534456 + }, + "p2": { + "x": 104, + "y": 59.5 + } + } + }, + { + "ID": "14769", + "typeID": "Arrow", + "zOrder": "14", + "w": "94", + "h": "24", + "measuredW": "150", + "measuredH": "100", + "x": "420", + "y": "1016", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.5, + "y": 0 + }, + "p1": { + "x": 0.487852196079316, + "y": -0.041868754088745526 + }, + "p2": { + "x": 93, + "y": 24 + } + } + }, + { + "ID": "14770", + "typeID": "Arrow", + "zOrder": "15", + "w": "1", + "h": "220", + "measuredW": "150", + "measuredH": "100", + "x": "663", + "y": "590", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.46044522302392416, + "y": 0.0036766536054163913 + }, + "p2": { + "x": 0, + "y": 219.5 + } + } + }, + { + "ID": "14771", + "typeID": "Arrow", + "zOrder": "16", + "w": "129", + "h": "131", + "measuredW": "150", + "measuredH": "100", + "x": "507", + "y": "570", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4613181955189419, + "y": -0.10434039987944232 + }, + "p2": { + "x": 129, + "y": 130.5 + } + } + }, + { + "ID": "14772", + "typeID": "Arrow", + "zOrder": "17", + "w": "128", + "h": "91", + "measuredW": "150", + "measuredH": "100", + "x": "507", + "y": "617", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.461318195518942, + "y": -0.10434039987944228 + }, + "p2": { + "x": 128, + "y": 90.5 + } + } + }, + { + "ID": "14773", + "typeID": "Arrow", + "zOrder": "18", + "w": "134", + "h": "50", + "measuredW": "150", + "measuredH": "100", + "x": "505", + "y": "664", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.461318195518942, + "y": -0.10434039987944237 + }, + "p2": { + "x": 134, + "y": 49.5 + } + } + }, + { + "ID": "14774", + "typeID": "Arrow", + "zOrder": "19", + "w": "138", + "h": "6", + "measuredW": "150", + "measuredH": "100", + "x": "496", + "y": "717", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.46044522302392427, + "y": 0.0036766536054163978 + }, + "p2": { + "x": 138, + "y": 5.5 + }, + "stroke": "dotted" + } + }, + { + "ID": "14775", + "typeID": "Arrow", + "zOrder": "20", + "w": "122", + "h": "114", + "measuredW": "150", + "measuredH": "100", + "x": "846", + "y": "598", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 122.5, + "y": -0.5 + }, + "p1": { + "x": 0.5299139167862267, + "y": -0.2574605451936872 + }, + "p2": { + "x": 0.5, + "y": 113.5 + } + } + }, + { + "ID": "14776", + "typeID": "Arrow", + "zOrder": "21", + "w": "1", + "h": "76", + "measuredW": "150", + "measuredH": "100", + "x": "1094", + "y": "591", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4604452230239241, + "y": 0.0036766536054163913 + }, + "p2": { + "x": 0, + "y": 76 + }, + "stroke": "dotted" + } + }, + { + "ID": "14777", + "typeID": "Arrow", + "zOrder": "22", + "w": "221", + "h": "117", + "measuredW": "150", + "measuredH": "100", + "x": "744", + "y": "469", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0.5, + "y": 0 + }, + "p1": { + "x": 0.3557172557172557, + "y": -0.2189189189189189 + }, + "p2": { + "x": 221.5, + "y": 117 + } + } + }, + { + "ID": "14778", + "typeID": "Arrow", + "zOrder": "23", + "w": "1", + "h": "95", + "measuredW": "150", + "measuredH": "100", + "x": "744", + "y": "159", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": -0.27685841682816204 + }, + "p1": { + "x": 0.46044522302392427, + "y": 0.003676653605416392 + }, + "p2": { + "x": 0, + "y": 94.59824914485046 + }, + "stroke": "dotted" + } + }, + { + "ID": "14779", + "typeID": "Arrow", + "zOrder": "24", + "w": "1", + "h": "80", + "measuredW": "150", + "measuredH": "100", + "x": "744", + "y": "262", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.46044522302392416, + "y": 0.003676653605416392 + }, + "p2": { + "x": 0, + "y": 80.06287646587509 + } + } + }, + { + "ID": "14780", + "typeID": "Arrow", + "zOrder": "25", + "w": "120", + "h": "45", + "measuredW": "150", + "measuredH": "100", + "x": "871", + "y": "417", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 120, + "y": 0 + }, + "p1": { + "x": 0.5537800308573948, + "y": 0.04485342737491732 + }, + "p2": { + "x": 0, + "y": 45 + } + } + }, + { + "ID": "14781", + "typeID": "Arrow", + "zOrder": "26", + "w": "120", + "h": "44", + "measuredW": "150", + "measuredH": "100", + "x": "867", + "y": "475", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 120, + "y": 44 + }, + "p1": { + "x": 0.5846756207563067, + "y": -0.036972790801407494 + }, + "p2": { + "x": 0, + "y": 0 + } + } + }, + { + "ID": "14782", + "typeID": "Arrow", + "zOrder": "27", + "w": "99", + "h": "50", + "measuredW": "150", + "measuredH": "100", + "x": "555", + "y": "416", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 98, + "y": 50 + }, + "p1": { + "x": 0.598612099644128, + "y": 0.12644128113878997 + }, + "p2": { + "x": -0.5, + "y": 0 + } + } + }, + { + "ID": "14783", + "typeID": "Arrow", + "zOrder": "28", + "w": "99", + "h": "50", + "measuredW": "150", + "measuredH": "100", + "x": "556", + "y": "472", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 98, + "y": 0 + }, + "p1": { + "x": 0.6551455674158455, + "y": -0.1193632321907845 + }, + "p2": { + "x": -0.5, + "y": 50 + } + } + }, + { + "ID": "14784", + "typeID": "Arrow", + "zOrder": "29", + "w": "115", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "544", + "y": "467", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 115, + "y": 1 + }, + "p1": { + "x": 0.5085059730833207, + "y": 0.02181309541811583 + }, + "p2": { + "x": 0, + "y": 0 + } + } + }, + { + "ID": "14785", + "typeID": "Arrow", + "zOrder": "30", + "w": "143", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "847", + "y": "467", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 143, + "y": 0 + }, + "p1": { + "x": 0.5536354056902003, + "y": 0.01338250790305583 + }, + "p2": { + "x": 0, + "y": 2 + } + } + }, + { + "ID": "14786", + "typeID": "Label", + "zOrder": "31", + "measuredW": "87", + "measuredH": "36", + "x": "701", + "y": "348", + "properties": { + "text": "Python", + "size": "28" + } + }, + { + "ID": "14787", + "typeID": "Arrow", + "zOrder": "32", + "w": "1", + "h": "55", + "measuredW": "150", + "measuredH": "100", + "x": "744", + "y": "400", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": -0.24280136823927023 + }, + "p1": { + "x": 0.4604452230239243, + "y": 0.003676653605416392 + }, + "p2": { + "x": 0, + "y": 55 + } + } + }, + { + "ID": "14788", + "typeID": "__group__", + "zOrder": "33", + "measuredW": "262", + "measuredH": "43", + "w": "262", + "h": "43", + "x": "624", + "y": "447", + "properties": { "controlName": "100-python-basics" }, "children": { @@ -379,15 +1016,15 @@ } }, { - "ID": "13490", + "ID": "14789", "typeID": "__group__", "zOrder": "34", "measuredW": "222", "measuredH": "42", "w": "222", "h": "42", - "x": "329", - "y": "392", + "x": "339", + "y": "402", "properties": { "controlName": "100-python-basics:basic-syntax" }, @@ -427,15 +1064,15 @@ } }, { - "ID": "13491", + "ID": "14790", "typeID": "__group__", "zOrder": "35", "measuredW": "222", "measuredH": "42", "w": "222", "h": "42", - "x": "329", - "y": "438", + "x": "339", + "y": "448", "properties": { "controlName": "101-python-basics:variables-and-datatypes" }, @@ -475,15 +1112,15 @@ } }, { - "ID": "13492", + "ID": "14791", "typeID": "__group__", "zOrder": "36", "measuredW": "256", "measuredH": "42", "w": "256", "h": "42", - "x": "948", - "y": "484", + "x": "958", + "y": "494", "properties": { "controlName": "105-python-basics:lists-tuples-sets-dictionaries" }, @@ -522,15 +1159,15 @@ } }, { - "ID": "13493", + "ID": "14792", "typeID": "__group__", "zOrder": "37", "measuredW": "222", "measuredH": "42", "w": "222", "h": "42", - "x": "329", - "y": "484", + "x": "339", + "y": "494", "properties": { "controlName": "102-python-basics:conditionals" }, @@ -570,15 +1207,15 @@ } }, { - "ID": "13494", + "ID": "14793", "typeID": "__group__", "zOrder": "38", "measuredW": "254", "measuredH": "42", "w": "254", "h": "42", - "x": "948", - "y": "391", + "x": "958", + "y": "401", "properties": { "controlName": "103-python-basics:typecasting-exceptions" }, @@ -617,15 +1254,15 @@ } }, { - "ID": "13495", + "ID": "14794", "typeID": "__group__", "zOrder": "39", "measuredW": "256", "measuredH": "42", "w": "256", "h": "42", - "x": "948", - "y": "438", + "x": "958", + "y": "448", "properties": { "controlName": "104-python-basics:functions" }, @@ -665,15 +1302,15 @@ } }, { - "ID": "13496", + "ID": "14795", "typeID": "__group__", "zOrder": "40", "measuredW": "262", "measuredH": "43", "w": "262", "h": "43", - "x": "943", - "y": "561", + "x": "953", + "y": "571", "properties": { "controlName": "101-data-structures-and-algorithms" }, @@ -712,15 +1349,15 @@ } }, { - "ID": "13497", + "ID": "14796", "typeID": "__group__", "zOrder": "41", "measuredW": "222", "measuredH": "42", "w": "222", "h": "42", - "x": "984", - "y": "636", + "x": "994", + "y": "646", "properties": { "controlName": "100-data-structures-and-algorithms:arrays-linked-lists" }, @@ -759,15 +1396,15 @@ } }, { - "ID": "13498", + "ID": "14797", "typeID": "__group__", "zOrder": "42", "measuredW": "222", "measuredH": "42", "w": "222", "h": "42", - "x": "984", - "y": "682", + "x": "994", + "y": "692", "properties": { "controlName": "101-data-structures-and-algorithms:heaps-stacks-queues" }, @@ -806,15 +1443,15 @@ } }, { - "ID": "13499", + "ID": "14798", "typeID": "__group__", "zOrder": "43", "measuredW": "222", "measuredH": "42", "w": "222", "h": "42", - "x": "985", - "y": "729", + "x": "995", + "y": "739", "properties": { "controlName": "102-data-structures-and-algorithms:hash-tables" }, @@ -853,15 +1490,15 @@ } }, { - "ID": "13500", + "ID": "14799", "typeID": "__group__", "zOrder": "44", "measuredW": "222", "measuredH": "42", "w": "222", "h": "42", - "x": "984", - "y": "775", + "x": "994", + "y": "785", "properties": { "controlName": "103-data-structures-and-algorithms:binary-search-trees" }, @@ -900,15 +1537,15 @@ } }, { - "ID": "13501", + "ID": "14800", "typeID": "__group__", "zOrder": "45", "measuredW": "222", "measuredH": "42", "w": "222", "h": "42", - "x": "984", - "y": "822", + "x": "994", + "y": "832", "properties": { "controlName": "104-data-structures-and-algorithms:recursion" }, @@ -947,15 +1584,15 @@ } }, { - "ID": "13502", + "ID": "14801", "typeID": "__group__", "zOrder": "46", "measuredW": "222", "measuredH": "42", "w": "222", "h": "42", - "x": "984", - "y": "869", + "x": "994", + "y": "879", "properties": { "controlName": "105-data-structures-and-algorithms:sorting-algorithms" }, @@ -994,15 +1631,15 @@ } }, { - "ID": "13503", + "ID": "14802", "typeID": "__group__", "zOrder": "47", "measuredW": "311", "measuredH": "43", "w": "311", "h": "43", - "x": "612", - "y": "680", + "x": "622", + "y": "690", "properties": { "controlName": "102-python-advanced-topics" }, @@ -1041,61 +1678,17 @@ } }, { - "ID": "13504", - "typeID": "__group__", - "zOrder": "72", - "measuredW": "131", - "measuredH": "184", - "w": "131", - "h": "184", - "x": "373", - "y": "689", - "properties": { - "controlName": "100-python-advanced-topics:oop" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "131", - "h": "184", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "35", - "measuredH": "24", - "x": "48", - "y": "9", - "properties": { - "text": "OOP", - "size": "16" - } - } - ] - } - } - }, - { - "ID": "13505", + "ID": "14803", "typeID": "__group__", - "zOrder": "73", - "measuredW": "169", - "measuredH": "42", - "w": "169", - "h": "42", - "x": "320", - "y": "727", + "zOrder": "48", + "measuredW": "115", + "measuredH": "142", + "w": "115", + "h": "142", + "x": "580", + "y": "784", "properties": { - "controlName": "102-python-advanced-topics:oop:classes" + "controlName": "105-python-advanced-topics:modules" }, "children": { "controls": { @@ -1104,28 +1697,24 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "169", - "h": "42", + "w": "115", + "h": "142", "measuredW": "100", "measuredH": "70", "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } + "y": "0" }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "60", - "measuredW": "58", + "measuredW": "62", "measuredH": "24", - "x": "55", - "y": "9", + "x": "27", + "y": "11", "properties": { "size": "16", - "text": "Classes" + "text": "Modules" } } ] @@ -1133,17 +1722,17 @@ } }, { - "ID": "13506", + "ID": "14804", "typeID": "__group__", - "zOrder": "74", - "measuredW": "169", + "zOrder": "49", + "measuredW": "90", "measuredH": "42", - "w": "169", + "w": "90", "h": "42", - "x": "320", - "y": "773", + "x": "592", + "y": "825", "properties": { - "controlName": "101-python-advanced-topics:oop:inheritance" + "controlName": "100-python-advanced-topics:modules:builtin-modules" }, "children": { "controls": { @@ -1152,7 +1741,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "169", + "w": "90", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1166,14 +1755,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "86", - "measuredW": "83", + "measuredW": "45", "measuredH": "24", - "x": "42", + "x": "22", "y": "9", "properties": { "size": "16", - "text": "Inheritance" + "text": "Builtin" } } ] @@ -1181,17 +1769,17 @@ } }, { - "ID": "13507", + "ID": "14805", "typeID": "__group__", - "zOrder": "75", - "measuredW": "169", + "zOrder": "50", + "measuredW": "91", "measuredH": "42", - "w": "169", + "w": "91", "h": "42", - "x": "320", - "y": "819", + "x": "592", + "y": "871", "properties": { - "controlName": "100-python-advanced-topics:oop:methods-dunder" + "controlName": "101-python-advanced-topics:modules:custom-modules" }, "children": { "controls": { @@ -1200,7 +1788,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "169", + "w": "91", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1214,13 +1802,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "125", + "measuredW": "56", "measuredH": "24", - "x": "20", + "x": "18", "y": "9", "properties": { - "text": "Methods, Dunder", - "size": "16" + "size": "16", + "text": "Custom" } } ] @@ -1228,17 +1816,17 @@ } }, { - "ID": "13508", + "ID": "14806", "typeID": "__group__", - "zOrder": "76", - "measuredW": "172", + "zOrder": "51", + "measuredW": "119", "measuredH": "42", - "w": "172", + "w": "119", "h": "42", - "x": "330", - "y": "591", + "x": "581", + "y": "583", "properties": { - "controlName": "102-python-advanced-topics:decorators" + "controlName": "104-python-advanced-topics:iterators" }, "children": { "controls": { @@ -1247,7 +1835,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "172", + "w": "119", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1261,13 +1849,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "81", + "measuredW": "62", "measuredH": "24", - "x": "45", + "x": "29", "y": "9", "properties": { "size": "16", - "text": "Decorators" + "text": "Iterators" } } ] @@ -1275,17 +1863,17 @@ } }, { - "ID": "13509", + "ID": "14807", "typeID": "__group__", - "zOrder": "77", - "measuredW": "171", - "measuredH": "42", - "w": "171", - "h": "42", - "x": "331", - "y": "545", + "zOrder": "52", + "measuredW": "206", + "measuredH": "43", + "w": "206", + "h": "43", + "x": "745", + "y": "1047", "properties": { - "controlName": "101-python-advanced-topics:regular-expressions" + "controlName": "106-python-frameworks" }, "children": { "controls": { @@ -1294,27 +1882,27 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "171", - "h": "42", + "w": "206", + "h": "43", "measuredW": "100", "measuredH": "70", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "49", + "measuredW": "140", "measuredH": "24", - "x": "61", - "y": "9", + "x": "33", + "y": "10", "properties": { "size": "16", - "text": "RegEx" + "text": "Learn a Framework" } } ] @@ -1322,17 +1910,17 @@ } }, { - "ID": "13510", + "ID": "14808", "typeID": "__group__", - "zOrder": "78", - "measuredW": "174", - "measuredH": "42", - "w": "174", - "h": "42", - "x": "329", - "y": "637", + "zOrder": "53", + "measuredW": "187", + "measuredH": "43", + "w": "187", + "h": "43", + "x": "498", + "y": "1019", "properties": { - "controlName": "103-python-advanced-topics:lambdas" + "controlName": "100-python-frameworks:synchronous" }, "children": { "controls": { @@ -1341,8 +1929,8 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "174", - "h": "42", + "w": "187", + "h": "43", "measuredW": "100", "measuredH": "70", "x": "0", @@ -1355,13 +1943,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "67", + "measuredW": "93", "measuredH": "24", - "x": "53", - "y": "9", + "x": "47", + "y": "10", "properties": { - "text": "Lambdas", - "size": "16" + "size": "16", + "text": "Synchronous" } } ] @@ -1369,17 +1957,17 @@ } }, { - "ID": "13511", + "ID": "14809", "typeID": "__group__", - "zOrder": "48", - "measuredW": "115", - "measuredH": "142", - "w": "115", - "h": "142", - "x": "570", - "y": "774", + "zOrder": "54", + "measuredW": "87", + "measuredH": "42", + "w": "87", + "h": "42", + "x": "339", + "y": "905", "properties": { - "controlName": "105-python-advanced-topics:modules" + "controlName": "100-python-frameworks:synchronous:django" }, "children": { "controls": { @@ -1388,24 +1976,27 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "115", - "h": "142", + "w": "87", + "h": "42", "measuredW": "100", "measuredH": "70", "x": "0", - "y": "0" + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "62", + "measuredW": "52", "measuredH": "24", - "x": "27", - "y": "11", + "x": "18", + "y": "9", "properties": { "size": "16", - "text": "Modules" + "text": "Django" } } ] @@ -1413,17 +2004,17 @@ } }, { - "ID": "13512", + "ID": "14810", "typeID": "__group__", - "zOrder": "49", - "measuredW": "90", + "zOrder": "55", + "measuredW": "88", "measuredH": "42", - "w": "90", + "w": "88", "h": "42", - "x": "582", - "y": "815", + "x": "339", + "y": "951", "properties": { - "controlName": "100-python-advanced-topics:modules:builtin-modules" + "controlName": "101-python-frameworks:synchronous:flask" }, "children": { "controls": { @@ -1432,7 +2023,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "90", + "w": "88", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1446,13 +2037,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "45", + "measuredW": "38", "measuredH": "24", - "x": "22", + "x": "25", "y": "9", "properties": { "size": "16", - "text": "Builtin" + "text": "Flask" } } ] @@ -1460,17 +2051,17 @@ } }, { - "ID": "13513", + "ID": "14811", "typeID": "__group__", - "zOrder": "50", - "measuredW": "91", + "zOrder": "56", + "measuredW": "88", "measuredH": "42", - "w": "91", + "w": "88", "h": "42", - "x": "582", - "y": "861", + "x": "339", + "y": "997", "properties": { - "controlName": "101-python-advanced-topics:modules:custom-modules" + "controlName": "102-python-frameworks:synchronous:pyramid" }, "children": { "controls": { @@ -1479,7 +2070,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "91", + "w": "88", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1493,13 +2084,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "56", + "measuredW": "58", "measuredH": "24", - "x": "18", + "x": "15", "y": "9", "properties": { "size": "16", - "text": "Custom" + "text": "Pyramid" } } ] @@ -1507,17 +2098,17 @@ } }, { - "ID": "13514", + "ID": "14812", "typeID": "__group__", - "zOrder": "51", - "measuredW": "119", + "zOrder": "57", + "measuredW": "91", "measuredH": "42", - "w": "119", + "w": "91", "h": "42", - "x": "571", - "y": "573", + "x": "338", + "y": "1113", "properties": { - "controlName": "104-python-advanced-topics:iterators" + "controlName": "100-python-frameworks:asynchronous:gevent" }, "children": { "controls": { @@ -1526,7 +2117,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "119", + "w": "91", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1540,13 +2131,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "62", + "measuredW": "50", "measuredH": "24", - "x": "29", + "x": "21", "y": "9", "properties": { "size": "16", - "text": "Iterators" + "text": "gevent" } } ] @@ -1554,17 +2145,17 @@ } }, { - "ID": "13523", + "ID": "14813", "typeID": "__group__", - "zOrder": "86", - "measuredW": "146", + "zOrder": "58", + "measuredW": "89", "measuredH": "42", - "w": "146", + "w": "89", "h": "42", - "x": "763", - "y": "908", + "x": "339", + "y": "1159", "properties": { - "controlName": "101-python-package-managers:pip" + "controlName": "101-python-frameworks:asynchronous:aiohttp" }, "children": { "controls": { @@ -1573,7 +2164,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "146", + "w": "89", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1587,13 +2178,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "24", + "measuredW": "50", "measuredH": "24", - "x": "61", + "x": "20", "y": "9", "properties": { "size": "16", - "text": "Pip" + "text": "aiohttp" } } ] @@ -1601,17 +2192,17 @@ } }, { - "ID": "13524", + "ID": "14814", "typeID": "__group__", - "zOrder": "52", - "measuredW": "206", - "measuredH": "43", - "w": "206", - "h": "43", - "x": "735", - "y": "1037", + "zOrder": "59", + "measuredW": "91", + "measuredH": "42", + "w": "91", + "h": "42", + "x": "338", + "y": "1205", "properties": { - "controlName": "106-python-frameworks" + "controlName": "102-python-frameworks:asynchronous:tornado" }, "children": { "controls": { @@ -1620,27 +2211,27 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "206", - "h": "43", + "w": "91", + "h": "42", "measuredW": "100", "measuredH": "70", "x": "0", "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "140", + "measuredW": "60", "measuredH": "24", - "x": "33", - "y": "10", + "x": "16", + "y": "9", "properties": { "size": "16", - "text": "Learn a Framework" + "text": "Tornado" } } ] @@ -1648,17 +2239,17 @@ } }, { - "ID": "13525", + "ID": "14815", "typeID": "__group__", - "zOrder": "53", - "measuredW": "187", - "measuredH": "43", - "w": "187", - "h": "43", - "x": "488", - "y": "1009", + "zOrder": "60", + "measuredW": "91", + "measuredH": "42", + "w": "91", + "h": "42", + "x": "338", + "y": "1251", "properties": { - "controlName": "100-python-frameworks:synchronous" + "controlName": "103-python-frameworks:asynchronous:sanic" }, "children": { "controls": { @@ -1667,8 +2258,8 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "187", - "h": "43", + "w": "91", + "h": "42", "measuredW": "100", "measuredH": "70", "x": "0", @@ -1681,13 +2272,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "93", + "measuredW": "41", "measuredH": "24", - "x": "47", - "y": "10", + "x": "25", + "y": "9", "properties": { "size": "16", - "text": "Synchronous" + "text": "Sanic" } } ] @@ -1695,17 +2286,17 @@ } }, { - "ID": "13526", + "ID": "14816", "typeID": "__group__", - "zOrder": "54", - "measuredW": "87", - "measuredH": "42", - "w": "87", - "h": "42", - "x": "329", - "y": "895", + "zOrder": "61", + "measuredW": "183", + "measuredH": "43", + "w": "183", + "h": "43", + "x": "1034", + "y": "1155", "properties": { - "controlName": "100-python-frameworks:synchronous:django" + "controlName": "108-python-testing" }, "children": { "controls": { @@ -1714,27 +2305,27 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "87", - "h": "42", + "w": "183", + "h": "43", "measuredW": "100", "measuredH": "70", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "52", + "measuredW": "128", "measuredH": "24", - "x": "18", - "y": "9", + "x": "28", + "y": "10", "properties": { "size": "16", - "text": "Django" + "text": "Testing your Apps" } } ] @@ -1742,17 +2333,17 @@ } }, { - "ID": "13527", + "ID": "14817", "typeID": "__group__", - "zOrder": "55", - "measuredW": "88", + "zOrder": "62", + "measuredW": "154", "measuredH": "42", - "w": "88", + "w": "154", "h": "42", - "x": "329", - "y": "941", + "x": "1060", + "y": "1080", "properties": { - "controlName": "101-python-frameworks:synchronous:flask" + "controlName": "100-python-testing:unittest-pyunit" }, "children": { "controls": { @@ -1761,7 +2352,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "88", + "w": "154", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1775,13 +2366,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "38", + "measuredW": "116", "measuredH": "24", - "x": "25", + "x": "19", "y": "9", "properties": { "size": "16", - "text": "Flask" + "text": "unittest / pyUnit" } } ] @@ -1789,17 +2380,17 @@ } }, { - "ID": "13528", + "ID": "14818", "typeID": "__group__", - "zOrder": "56", - "measuredW": "88", + "zOrder": "63", + "measuredW": "154", "measuredH": "42", - "w": "88", + "w": "154", "h": "42", - "x": "329", - "y": "987", + "x": "1060", + "y": "1033", "properties": { - "controlName": "102-python-frameworks:synchronous:pyramid" + "controlName": "101-python-testing:pytest" }, "children": { "controls": { @@ -1808,7 +2399,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "88", + "w": "154", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1822,13 +2413,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "58", + "measuredW": "44", "measuredH": "24", - "x": "15", + "x": "55", "y": "9", "properties": { "size": "16", - "text": "Pyramid" + "text": "pytest" } } ] @@ -1836,17 +2427,17 @@ } }, { - "ID": "13530", + "ID": "14819", "typeID": "__group__", - "zOrder": "57", - "measuredW": "91", + "zOrder": "64", + "measuredW": "154", "measuredH": "42", - "w": "91", + "w": "154", "h": "42", - "x": "328", - "y": "1103", + "x": "1060", + "y": "941", "properties": { - "controlName": "100-python-frameworks:asynchronous:gevent" + "controlName": "102-python-testing:doctest" }, "children": { "controls": { @@ -1855,7 +2446,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "91", + "w": "154", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1869,13 +2460,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "50", + "measuredW": "54", "measuredH": "24", - "x": "21", + "x": "50", "y": "9", "properties": { "size": "16", - "text": "gevent" + "text": "doctest" } } ] @@ -1883,17 +2474,17 @@ } }, { - "ID": "13531", + "ID": "14820", "typeID": "__group__", - "zOrder": "58", - "measuredW": "89", + "zOrder": "65", + "measuredW": "154", "measuredH": "42", - "w": "89", + "w": "154", "h": "42", - "x": "329", - "y": "1149", + "x": "1060", + "y": "987", "properties": { - "controlName": "101-python-frameworks:asynchronous:aiohttp" + "controlName": "102-python-testing:nose" }, "children": { "controls": { @@ -1902,7 +2493,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "89", + "w": "154", "h": "42", "measuredW": "100", "measuredH": "70", @@ -1916,13 +2507,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "50", + "measuredW": "36", "measuredH": "24", - "x": "20", + "x": "59", "y": "9", "properties": { "size": "16", - "text": "aiohttp" + "text": "nose" } } ] @@ -1930,17 +2521,54 @@ } }, { - "ID": "13532", + "ID": "14821", + "typeID": "Canvas", + "zOrder": "66", + "w": "350", + "h": "141", + "measuredW": "100", + "measuredH": "70", + "x": "1028", + "y": "133" + }, + { + "ID": "14822", + "typeID": "Label", + "zOrder": "67", + "measuredW": "314", + "measuredH": "25", + "x": "1042", + "y": "150", + "properties": { + "size": "17", + "text": "Find the detailed version of this roadmap" + } + }, + { + "ID": "14823", + "typeID": "Label", + "zOrder": "68", + "measuredW": "319", + "measuredH": "25", + "x": "1042", + "y": "178", + "properties": { + "size": "17", + "text": "along with resources and other roadmaps" + } + }, + { + "ID": "14824", "typeID": "__group__", - "zOrder": "59", - "measuredW": "91", - "measuredH": "42", - "w": "91", - "h": "42", - "x": "328", - "y": "1195", + "zOrder": "69", + "measuredW": "320", + "measuredH": "45", + "w": "320", + "h": "45", + "x": "1043", + "y": "214", "properties": { - "controlName": "102-python-frameworks:asynchronous:tornado" + "controlName": "ext_link:roadmap.sh" }, "children": { "controls": { @@ -1949,27 +2577,85 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "91", - "h": "42", + "w": "320", + "h": "45", "measuredW": "100", "measuredH": "70", "x": "0", "y": "0", "properties": { - "color": "16770457" + "borderColor": "4273622", + "color": "4273622" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "60", - "measuredH": "24", - "x": "16", + "measuredW": "105", + "measuredH": "28", + "x": "141", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "roadmap.sh" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "45", + "measuredH": "28", + "x": "64", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "https" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "5", + "measuredH": "28", + "x": "113", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": ":" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "10", + "measuredH": "28", + "x": "120", "y": "9", "properties": { - "size": "16", - "text": "Tornado" + "color": "16777215", + "size": "20", + "text": "/" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "10", + "measuredH": "28", + "x": "128", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" } } ] @@ -1977,46 +2663,48 @@ } }, { - "ID": "13533", + "ID": "14825", "typeID": "__group__", - "zOrder": "60", - "measuredW": "91", - "measuredH": "42", - "w": "91", - "h": "42", - "x": "328", - "y": "1241", + "zOrder": "70", + "measuredW": "374", + "measuredH": "50", + "w": "374", + "h": "50", + "x": "598", + "y": "229", "properties": { - "controlName": "103-python-frameworks:asynchronous:sanic" + "controlName": "ext_link:roadmap.sh/backend" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "Canvas", + "typeID": "TextArea", "zOrder": "0", - "w": "91", - "h": "42", - "measuredW": "100", - "measuredH": "70", + "w": "374", + "h": "50", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "4273622", + "borderColor": "4273622" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "41", - "measuredH": "24", - "x": "25", - "y": "9", + "measuredW": "320", + "measuredH": "25", + "x": "27", + "y": "12", "properties": { - "size": "16", - "text": "Sanic" + "size": "17", + "text": "Backend roadmap till Language Selection", + "color": "16777215" } } ] @@ -2024,17 +2712,47 @@ } }, { - "ID": "13534", + "ID": "14826", + "typeID": "Arrow", + "zOrder": "71", + "w": "1", + "h": "77", + "measuredW": "150", + "measuredH": "100", + "x": "424", + "y": "716", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 0, + "y": 76.5 + }, + "p1": { + "x": 0.5494505494505496, + "y": 0 + }, + "p2": { + "x": 0, + "y": -0.5 + } + } + }, + { + "ID": "14827", "typeID": "__group__", - "zOrder": "61", - "measuredW": "183", - "measuredH": "43", - "w": "183", - "h": "43", - "x": "1024", - "y": "1145", + "zOrder": "72", + "measuredW": "131", + "measuredH": "184", + "w": "131", + "h": "184", + "x": "383", + "y": "699", "properties": { - "controlName": "108-python-testing" + "controlName": "100-python-advanced-topics:oop" }, "children": { "controls": { @@ -2043,27 +2761,24 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "183", - "h": "43", + "w": "131", + "h": "184", "measuredW": "100", "measuredH": "70", "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } + "y": "0" }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "128", + "measuredW": "35", "measuredH": "24", - "x": "28", - "y": "10", + "x": "48", + "y": "9", "properties": { - "size": "16", - "text": "Testing your Apps" + "text": "OOP", + "size": "16" } } ] @@ -2071,17 +2786,17 @@ } }, { - "ID": "13535", + "ID": "14828", "typeID": "__group__", - "zOrder": "62", - "measuredW": "154", + "zOrder": "73", + "measuredW": "169", "measuredH": "42", - "w": "154", + "w": "169", "h": "42", - "x": "1050", - "y": "1070", + "x": "330", + "y": "737", "properties": { - "controlName": "100-python-testing:unittest-pyunit" + "controlName": "102-python-advanced-topics:oop:classes" }, "children": { "controls": { @@ -2090,7 +2805,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "154", + "w": "169", "h": "42", "measuredW": "100", "measuredH": "70", @@ -2104,13 +2819,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "116", + "w": "60", + "measuredW": "58", "measuredH": "24", - "x": "19", + "x": "55", "y": "9", "properties": { "size": "16", - "text": "unittest / pyUnit" + "text": "Classes" } } ] @@ -2118,17 +2834,17 @@ } }, { - "ID": "13536", + "ID": "14829", "typeID": "__group__", - "zOrder": "63", - "measuredW": "154", + "zOrder": "74", + "measuredW": "169", "measuredH": "42", - "w": "154", + "w": "169", "h": "42", - "x": "1050", - "y": "1023", + "x": "330", + "y": "783", "properties": { - "controlName": "101-python-testing:pytest" + "controlName": "101-python-advanced-topics:oop:inheritance" }, "children": { "controls": { @@ -2137,7 +2853,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "154", + "w": "169", "h": "42", "measuredW": "100", "measuredH": "70", @@ -2151,13 +2867,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "44", + "w": "86", + "measuredW": "83", "measuredH": "24", - "x": "55", + "x": "42", "y": "9", "properties": { "size": "16", - "text": "pytest" + "text": "Inheritance" } } ] @@ -2165,17 +2882,17 @@ } }, { - "ID": "13537", + "ID": "14830", "typeID": "__group__", - "zOrder": "64", - "measuredW": "154", + "zOrder": "75", + "measuredW": "169", "measuredH": "42", - "w": "154", + "w": "169", "h": "42", - "x": "1050", - "y": "931", + "x": "330", + "y": "829", "properties": { - "controlName": "102-python-testing:doctest" + "controlName": "100-python-advanced-topics:oop:methods-dunder" }, "children": { "controls": { @@ -2184,7 +2901,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "154", + "w": "169", "h": "42", "measuredW": "100", "measuredH": "70", @@ -2198,13 +2915,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "54", + "measuredW": "125", "measuredH": "24", - "x": "50", + "x": "20", "y": "9", "properties": { - "size": "16", - "text": "doctest" + "text": "Methods, Dunder", + "size": "16" } } ] @@ -2212,17 +2929,17 @@ } }, { - "ID": "13538", + "ID": "14831", "typeID": "__group__", - "zOrder": "65", - "measuredW": "154", + "zOrder": "76", + "measuredW": "172", "measuredH": "42", - "w": "154", + "w": "172", "h": "42", - "x": "1050", - "y": "977", + "x": "340", + "y": "601", "properties": { - "controlName": "102-python-testing:nose" + "controlName": "102-python-advanced-topics:decorators" }, "children": { "controls": { @@ -2231,7 +2948,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "154", + "w": "172", "h": "42", "measuredW": "100", "measuredH": "70", @@ -2245,13 +2962,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "36", + "measuredW": "81", "measuredH": "24", - "x": "59", + "x": "45", "y": "9", "properties": { "size": "16", - "text": "nose" + "text": "Decorators" } } ] @@ -2259,54 +2976,17 @@ } }, { - "ID": "13539", - "typeID": "Canvas", - "zOrder": "66", - "w": "350", - "h": "141", - "measuredW": "100", - "measuredH": "70", - "x": "923", - "y": "163" - }, - { - "ID": "13540", - "typeID": "Label", - "zOrder": "67", - "measuredW": "314", - "measuredH": "25", - "x": "937", - "y": "180", - "properties": { - "size": "17", - "text": "Find the detailed version of this roadmap" - } - }, - { - "ID": "13541", - "typeID": "Label", - "zOrder": "68", - "measuredW": "319", - "measuredH": "25", - "x": "937", - "y": "208", - "properties": { - "size": "17", - "text": "along with resources and other roadmaps" - } - }, - { - "ID": "13542", + "ID": "14832", "typeID": "__group__", - "zOrder": "69", - "measuredW": "320", - "measuredH": "45", - "w": "320", - "h": "45", - "x": "938", - "y": "244", + "zOrder": "77", + "measuredW": "171", + "measuredH": "42", + "w": "171", + "h": "42", + "x": "341", + "y": "555", "properties": { - "controlName": "ext_link:roadmap.sh" + "controlName": "101-python-advanced-topics:regular-expressions" }, "children": { "controls": { @@ -2315,85 +2995,27 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "320", - "h": "45", + "w": "171", + "h": "42", "measuredW": "100", "measuredH": "70", "x": "0", "y": "0", "properties": { - "borderColor": "4273622", - "color": "4273622" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "105", - "measuredH": "28", - "x": "141", - "y": "8", - "properties": { - "color": "16777215", - "size": "20", - "text": "roadmap.sh" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "45", - "measuredH": "28", - "x": "64", - "y": "8", - "properties": { - "color": "16777215", - "size": "20", - "text": "https" - } - }, - { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "measuredW": "5", - "measuredH": "28", - "x": "113", - "y": "8", - "properties": { - "color": "16777215", - "size": "20", - "text": ":" - } - }, - { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "measuredW": "10", - "measuredH": "28", - "x": "120", - "y": "9", - "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - }, - { - "ID": "5", - "typeID": "Label", - "zOrder": "5", - "measuredW": "10", - "measuredH": "28", - "x": "128", + "measuredW": "49", + "measuredH": "24", + "x": "61", "y": "9", "properties": { - "color": "16777215", - "size": "20", - "text": "/" + "size": "16", + "text": "RegEx" } } ] @@ -2401,48 +3023,46 @@ } }, { - "ID": "13543", + "ID": "14833", "typeID": "__group__", - "zOrder": "70", - "measuredW": "374", - "measuredH": "50", - "w": "374", - "h": "50", - "x": "478", - "y": "219", + "zOrder": "78", + "measuredW": "174", + "measuredH": "42", + "w": "174", + "h": "42", + "x": "339", + "y": "647", "properties": { - "controlName": "ext_link:roadmap.sh/backend" + "controlName": "103-python-advanced-topics:lambdas" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "Canvas", "zOrder": "0", - "w": "374", - "h": "50", - "measuredW": "200", - "measuredH": "140", + "w": "174", + "h": "42", + "measuredW": "100", + "measuredH": "70", "x": "0", "y": "0", "properties": { - "color": "4273622", - "borderColor": "4273622" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "320", - "measuredH": "25", - "x": "27", - "y": "12", + "measuredW": "67", + "measuredH": "24", + "x": "53", + "y": "9", "properties": { - "size": "17", - "text": "Backend roadmap till Language Selection", - "color": "16777215" + "text": "Lambdas", + "size": "16" } } ] @@ -2450,423 +3070,281 @@ } }, { - "ID": "13544", - "typeID": "Arrow", - "zOrder": "23", - "w": "1", - "h": "95", - "measuredW": "150", - "measuredH": "100", - "x": "734", - "y": "149", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0, - "y": -0.27685841682816204 - }, - "p1": { - "x": 0.46044522302392427, - "y": 0.003676653605416392 - }, - "p2": { - "x": 0, - "y": 94.59824914485046 - }, - "stroke": "dotted" - } - }, - { - "ID": "13545", - "typeID": "Arrow", - "zOrder": "24", - "w": "1", - "h": "80", - "measuredW": "150", - "measuredH": "100", - "x": "734", - "y": "252", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.46044522302392416, - "y": 0.003676653605416392 - }, - "p2": { - "x": 0, - "y": 80.06287646587509 - } - } - }, - { - "ID": "13546", + "ID": "14834", "typeID": "__group__", - "zOrder": "82", - "measuredW": "374", - "measuredH": "50", - "w": "374", - "h": "50", - "x": "612", - "y": "1283", + "zOrder": "79", + "measuredW": "187", + "measuredH": "43", + "w": "187", + "h": "43", + "x": "498", + "y": "1074", "properties": { - "controlName": "ext_link:roadmap.sh/backend" + "controlName": "101-python-frameworks:asynchronous" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "Canvas", "zOrder": "0", - "w": "374", - "h": "50", - "measuredW": "200", - "measuredH": "140", + "w": "187", + "h": "43", + "measuredW": "100", + "measuredH": "70", "x": "0", "y": "0", "properties": { - "color": "4273622", - "borderColor": "4273622" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "340", - "measuredH": "25", - "x": "17", - "y": "12", + "measuredW": "101", + "measuredH": "24", + "x": "43", + "y": "10", "properties": { - "size": "17", - "color": "16777215", - "text": "Backend roadmap after Language Selection" + "size": "16", + "text": "Asynchronous" } - } - ] - } - } - }, - { - "ID": "13552", - "typeID": "Arrow", - "zOrder": "22", - "w": "221", - "h": "117", - "measuredW": "150", - "measuredH": "100", - "x": "734", - "y": "459", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0.5, - "y": 0 - }, - "p1": { - "x": 0.3557172557172557, - "y": -0.2189189189189189 - }, - "p2": { - "x": 221.5, - "y": 117 - } - } - }, - { - "ID": "13555", - "typeID": "Arrow", - "zOrder": "21", - "w": "1", - "h": "76", - "measuredW": "150", - "measuredH": "100", - "x": "1084", - "y": "581", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4604452230239241, - "y": 0.0036766536054163913 - }, - "p2": { - "x": 0, - "y": 76 - }, - "stroke": "dotted" - } - }, - { - "ID": "13556", - "typeID": "Arrow", - "zOrder": "20", - "w": "122", - "h": "114", - "measuredW": "150", - "measuredH": "100", - "x": "836", - "y": "588", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 122.5, - "y": -0.5 - }, - "p1": { - "x": 0.5299139167862267, - "y": -0.2574605451936872 - }, - "p2": { - "x": 0.5, - "y": 113.5 - } - } - }, - { - "ID": "13558", - "typeID": "Arrow", - "zOrder": "19", - "w": "138", - "h": "6", - "measuredW": "150", - "measuredH": "100", - "x": "486", - "y": "707", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.46044522302392427, - "y": 0.0036766536054163978 - }, - "p2": { - "x": 138, - "y": 5.5 - }, - "stroke": "dotted" - } - }, - { - "ID": "13559", - "typeID": "Arrow", - "zOrder": "18", - "w": "134", - "h": "50", - "measuredW": "150", - "measuredH": "100", - "x": "495", - "y": "654", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.461318195518942, - "y": -0.10434039987944237 - }, - "p2": { - "x": 134, - "y": 49.5 + } + ] } } }, { - "ID": "13560", - "typeID": "Arrow", - "zOrder": "17", - "w": "128", - "h": "91", - "measuredW": "150", - "measuredH": "100", - "x": "497", - "y": "607", + "ID": "14835", + "typeID": "__group__", + "zOrder": "80", + "measuredW": "89", + "measuredH": "42", + "w": "89", + "h": "42", + "x": "339", + "y": "1053", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.461318195518942, - "y": -0.10434039987944228 - }, - "p2": { - "x": 128, - "y": 90.5 + "controlName": "102-python-frameworks:fastapi" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "89", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "56", + "measuredH": "24", + "x": "17", + "y": "9", + "properties": { + "size": "16", + "text": "FastAPI" + } + } + ] } } }, { - "ID": "13561", + "ID": "14836", "typeID": "Arrow", - "zOrder": "16", - "w": "129", - "h": "131", + "zOrder": "81", + "w": "1", + "h": "98", "measuredW": "150", "measuredH": "100", - "x": "497", - "y": "560", + "x": "829", + "y": "1324", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", "color": "10027263", - "stroke": "dotted", "p0": { - "x": 0, - "y": 0 + "x": -0.5, + "y": -0.5 }, "p1": { - "x": 0.4613181955189419, - "y": -0.10434039987944232 + "x": 0.5259259259259262, + "y": 0 }, "p2": { - "x": 129, - "y": 130.5 - } + "x": -0.5, + "y": 97 + }, + "stroke": "dotted" } }, { - "ID": "13562", - "typeID": "Arrow", - "zOrder": "15", - "w": "1", - "h": "220", - "measuredW": "150", - "measuredH": "100", - "x": "653", - "y": "580", + "ID": "14837", + "typeID": "__group__", + "zOrder": "82", + "measuredW": "374", + "measuredH": "50", + "w": "374", + "h": "50", + "x": "622", + "y": "1293", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.46044522302392416, - "y": 0.0036766536054163913 - }, - "p2": { - "x": 0, - "y": 219.5 + "controlName": "ext_link:roadmap.sh/backend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "374", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "4273622", + "borderColor": "4273622" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "340", + "measuredH": "25", + "x": "17", + "y": "12", + "properties": { + "size": "17", + "color": "16777215", + "text": "Backend roadmap after Language Selection" + } + } + ] } } }, { - "ID": "13565", - "typeID": "Arrow", - "zOrder": "14", - "w": "94", - "h": "24", - "measuredW": "150", - "measuredH": "100", - "x": "410", - "y": "1006", + "ID": "14839", + "typeID": "__group__", + "zOrder": "83", + "measuredW": "173", + "measuredH": "193", + "w": "173", + "h": "193", + "x": "759", + "y": "796", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": -0.5, - "y": 0 - }, - "p1": { - "x": 0.487852196079316, - "y": -0.041868754088745526 - }, - "p2": { - "x": 93, - "y": 24 + "controlName": "105-python-package-managers" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "173", + "h": "193", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "141", + "measuredH": "24", + "x": "16", + "y": "13", + "properties": { + "size": "16", + "text": "Package Managers" + } + } + ] } } }, { - "ID": "13567", - "typeID": "Arrow", - "zOrder": "13", - "w": "105", - "h": "60", - "measuredW": "150", - "measuredH": "100", - "x": "413", - "y": "963", + "ID": "14840", + "typeID": "__group__", + "zOrder": "84", + "measuredW": "148", + "measuredH": "42", + "w": "148", + "h": "42", + "x": "772", + "y": "842", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": -0.5, - "y": 0 - }, - "p1": { - "x": 0.39794612911033506, - "y": -0.1274852183534456 - }, - "p2": { - "x": 104, - "y": 59.5 + "controlName": "100-python-package-managers:pypi" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "148", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "33", + "measuredH": "24", + "x": "57", + "y": "9", + "properties": { + "size": "16", + "text": "PyPI" + } + } + ] } } }, { - "ID": "13568", + "ID": "14841", "typeID": "__group__", - "zOrder": "79", - "measuredW": "187", - "measuredH": "43", - "w": "187", - "h": "43", - "x": "488", - "y": "1064", + "zOrder": "85", + "measuredW": "146", + "measuredH": "42", + "w": "146", + "h": "42", + "x": "773", + "y": "888", "properties": { - "controlName": "101-python-frameworks:asynchronous" + "controlName": "101-python-package-managers:pip" }, "children": { "controls": { @@ -2875,8 +3353,8 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "187", - "h": "43", + "w": "146", + "h": "42", "measuredW": "100", "measuredH": "70", "x": "0", @@ -2889,13 +3367,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "101", + "measuredW": "24", "measuredH": "24", - "x": "43", - "y": "10", + "x": "61", + "y": "9", "properties": { "size": "16", - "text": "Asynchronous" + "text": "Pip" } } ] @@ -2903,167 +3381,17 @@ } }, { - "ID": "13569", - "typeID": "Arrow", - "zOrder": "12", - "w": "91", - "h": "19", - "measuredW": "150", - "measuredH": "100", - "x": "408", - "y": "1064", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4292794822430673, - "y": -0.0842174251423423 - }, - "p2": { - "x": 91, - "y": 17.5 - } - } - }, - { - "ID": "13570", - "typeID": "Arrow", - "zOrder": "11", - "w": "105", - "h": "45", - "measuredW": "150", - "measuredH": "100", - "x": "409", - "y": "1094", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 45 - }, - "p1": { - "x": 0.3839080459770115, - "y": 0.14022988505747125 - }, - "p2": { - "x": 105, - "y": 0 - } - } - }, - { - "ID": "13571", - "typeID": "Arrow", - "zOrder": "10", - "w": "106", - "h": "93", - "measuredW": "150", - "measuredH": "100", - "x": "415", - "y": "1092", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 93 - }, - "p1": { - "x": 0.40844857933115414, - "y": 0.13221020870002514 - }, - "p2": { - "x": 106, - "y": 0 - } - } - }, - { - "ID": "13572", - "typeID": "Arrow", - "zOrder": "9", - "w": "123", - "h": "133", - "measuredW": "150", - "measuredH": "100", - "x": "414", - "y": "1097", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 133 - }, - "p1": { - "x": 0.4810165153269547, - "y": 0.11402279237004083 - }, - "p2": { - "x": 123, - "y": 0 - } - } - }, - { - "ID": "13573", - "typeID": "Arrow", - "zOrder": "8", - "w": "110", - "h": "112", - "measuredW": "150", - "measuredH": "100", - "x": "412", - "y": "910", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": -0.5, - "y": 0 - }, - "p1": { - "x": 0.49256306145204387, - "y": -0.1262491321818526 - }, - "p2": { - "x": 109, - "y": 111.5 - } - } - }, - { - "ID": "13577", + "ID": "14842", "typeID": "__group__", - "zOrder": "80", - "measuredW": "89", + "zOrder": "86", + "measuredW": "146", "measuredH": "42", - "w": "89", + "w": "146", "h": "42", - "x": "329", - "y": "1043", + "x": "773", + "y": "934", "properties": { - "controlName": "102-python-frameworks:fastapi" + "controlName": "102-python-package-managers:conda" }, "children": { "controls": { @@ -3072,7 +3400,7 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "89", + "w": "146", "h": "42", "measuredW": "100", "measuredH": "70", @@ -3086,13 +3414,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "56", + "measuredW": "48", "measuredH": "24", - "x": "17", + "x": "49", "y": "9", "properties": { "size": "16", - "text": "FastAPI" + "text": "Conda" } } ] @@ -3100,102 +3428,185 @@ } }, { - "ID": "13581", - "typeID": "Arrow", - "zOrder": "7", - "w": "214", - "h": "141", - "measuredW": "150", - "measuredH": "100", - "x": "817", - "y": "1174", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 214.5, - "y": 0 - }, - "p1": { - "x": 0.5712545436900968, - "y": -0.21227347450676648 - }, - "p2": { - "x": 0.20376246056980563, - "y": 141.43444344459454 + "ID": "14843", + "typeID": "__group__", + "zOrder": "87", + "measuredW": "352", + "measuredH": "54", + "w": "352", + "h": "54", + "x": "1027", + "y": "302", + "properties": { + "controlName": "100-python-roadmap-note" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "352", + "h": "54", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "224", + "measuredH": "26", + "x": "50", + "y": "14", + "properties": { + "size": "18", + "text": "Important Note / Click here" + } + }, + { + "ID": "2", + "typeID": "__group__", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "18", + "y": "18", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "13576743" + } + } + ] + } + } + } + ] } } }, - { - "ID": "13587", - "typeID": "Arrow", - "zOrder": "83", - "w": "1", - "h": "93", - "measuredW": "150", - "measuredH": "100", - "x": "280", - "y": "220", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4604452230239241, - "y": 0.0036766536054163917 - }, - "p2": { - "x": 0, - "y": 93 - }, - "stroke": "dotted", - "color": "16777215" - } + { + "ID": "14844", + "typeID": "Canvas", + "zOrder": "88", + "w": "328", + "h": "200", + "measuredW": "100", + "measuredH": "70", + "x": "215", + "y": "133" }, { - "ID": "13589", + "ID": "14845", "typeID": "__group__", - "zOrder": "84", - "measuredW": "173", - "measuredH": "142", - "w": "173", - "h": "142", - "x": "749", - "y": "819", + "zOrder": "89", + "measuredW": "189", + "measuredH": "27", + "w": "189", + "h": "27", + "x": "243", + "y": "210", "properties": { - "controlName": "105-python-package-managers" + "controlName": "ext_link:roadmap.sh/backend" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "Canvas", + "typeID": "Label", "zOrder": "0", - "w": "173", - "h": "142", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" + "measuredW": "156", + "measuredH": "26", + "x": "33", + "y": "0", + "properties": { + "size": "18", + "text": "Backend Roadmap" + } }, { "ID": "1", - "typeID": "Label", + "typeID": "__group__", "zOrder": "1", - "measuredW": "141", + "measuredW": "24", "measuredH": "24", - "x": "16", - "y": "11", - "properties": { - "size": "16", - "text": "Package Managers" + "w": "24", + "h": "24", + "x": "0", + "y": "3", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } } ] @@ -3203,227 +3614,196 @@ } }, { - "ID": "13591", - "typeID": "Arrow", - "zOrder": "6", - "w": "1", - "h": "352", - "measuredW": "150", - "measuredH": "100", - "x": "835", - "y": "706", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0, - "y": -0.24280136823927023 - }, - "p1": { - "x": 0.4604452230239245, - "y": 0.0036766536054163917 - }, - "p2": { - "x": 0, - "y": 352 - } - } - }, - { - "ID": "13592", - "typeID": "Arrow", - "zOrder": "4", - "w": "86", + "ID": "14846", + "typeID": "__group__", + "zOrder": "90", + "measuredW": "183", + "measuredH": "27", + "w": "183", "h": "27", - "measuredW": "150", - "measuredH": "100", - "x": "669", - "y": "1027", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 85.5, - "y": 27 - }, - "p1": { - "x": 0.5986120996441281, - "y": 0.12644128113878994 - }, - "p2": { - "x": 0, - "y": 0 - } - } - }, - { - "ID": "13593", - "typeID": "Arrow", - "zOrder": "5", - "w": "87", - "h": "28", - "measuredW": "150", - "measuredH": "100", - "x": "669", - "y": "1063", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 86.5, - "y": 0 - }, - "p1": { - "x": 0.6497109826589595, - "y": -0.08978805394990365 - }, - "p2": { - "x": 0, - "y": 28 - } - } - }, - { - "ID": "13595", - "typeID": "Arrow", - "zOrder": "3", - "w": "129", - "h": "166", - "measuredW": "150", - "measuredH": "100", - "x": "414", - "y": "1100", + "x": "243", + "y": "246", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 165.5 - }, - "p1": { - "x": 0.5753331674095528, - "y": 0.07360228069778492 - }, - "p2": { - "x": 129, - "y": -0.5 + "controlName": "ext_link:roadmap.sh/javascript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Label", + "zOrder": "0", + "measuredW": "150", + "measuredH": "26", + "x": "33", + "y": "0", + "properties": { + "size": "18", + "text": "DevOps Roadmap" + } + }, + { + "ID": "1", + "typeID": "__group__", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "0", + "y": "3", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + } + ] } } }, { - "ID": "13596", - "typeID": "Arrow", - "zOrder": "2", - "w": "101", - "h": "24", - "measuredW": "150", - "measuredH": "100", - "x": "408", - "y": "1037", + "ID": "14848", + "typeID": "Label", + "zOrder": "91", + "measuredW": "209", + "measuredH": "32", + "x": "243", + "y": "162", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 24.5 - }, - "p1": { - "x": 0.4704601401249764, - "y": 0.0798144290854005 - }, - "p2": { - "x": 101, - "y": 0.5 - } + "size": "24", + "text": "Related Roadmaps" } }, { - "ID": "13597", - "typeID": "Arrow", - "zOrder": "1", - "w": "199", - "h": "108", - "measuredW": "150", - "measuredH": "100", - "x": "837", - "y": "1055", + "ID": "14849", + "typeID": "__group__", + "zOrder": "92", + "measuredW": "251", + "measuredH": "27", + "w": "251", + "h": "27", + "x": "243", + "y": "284", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": -0.5, - "y": 0 - }, - "p1": { - "x": 0.3700657239593706, - "y": -0.20041824337781317 - }, - "p2": { - "x": 198.5, - "y": 108 + "controlName": "ext_link:roadmap.sh/software-design-architecture" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Label", + "zOrder": "0", + "measuredW": "218", + "measuredH": "26", + "x": "33", + "y": "0", + "properties": { + "size": "18", + "text": "Software Design Roadmap" + } + }, + { + "ID": "1", + "typeID": "__group__", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "0", + "y": "3", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + } + ] } } - }, - { - "ID": "13599", - "typeID": "Arrow", - "zOrder": "0", - "w": "1", - "h": "82", - "measuredW": "150", - "measuredH": "100", - "x": "1126", - "y": "1094", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0, - "y": -0.24280136823927023 - }, - "p1": { - "x": 0.4604452230239245, - "y": 0.003676653605416392 - }, - "p2": { - "x": 0, - "y": 82 - }, - "stroke": "dotted" - } } ] }, "attributes": { - "name": "New Wireframe 1 copy 3", - "order": 1000016.2408968211, + "name": "New Wireframe 1 copy 2", + "order": 1000006.8992828326, "parentID": null, "notes": "" }, "branchID": "Master", - "resourceID": "13C27694-0370-442D-AECD-EFA2B687DD15", - "mockupH": "1263", - "mockupW": "993", - "measuredW": "1273", - "measuredH": "1412", + "resourceID": "4BE92169-157F-4FC5-8E20-403CBCF7A6C6", + "mockupH": "1289", + "mockupW": "1164", + "measuredW": "1379", + "measuredH": "1422", "version": "1.0" }, "groupOffset": {