diff --git a/src/data/roadmaps/python/content/105-python-package-managers/103-poetry.md b/src/data/roadmaps/python/content/105-python-package-managers/103-poetry.md new file mode 100644 index 000000000..f465d9dbe --- /dev/null +++ b/src/data/roadmaps/python/content/105-python-package-managers/103-poetry.md @@ -0,0 +1,9 @@ +# Poetry + +Poetry is a dependency management and packaging tool for Python that runs on Windows, macOS, and Linux. Poetry efficiently installs, manages, and updates packages and their dependencies. Poetry seamlessly creates, saves, loads, and switches between project environments on your local computer. It is designed specifically for Python projects, providing a streamlined workflow for managing dependencies, virtual environments, and building packages. + +Poetry as a package manager helps you find and install packages. If you need a specific version of a package or a different version of Python, Poetry handles both dependency management and virtual environments effortlessly. With just a few commands, you can set up a completely isolated environment to run a different version of Python or package configuration, while maintaining your usual development environment. Poetry’s lock file ensures consistent installs across different environments, enhancing reproducibility and stability of your projects. + +Visit the following resources to learn more: + +- [Poetry Docs](https://python-poetry.org/docs/) diff --git a/src/data/roadmaps/python/content/105-python-package-managers/index.md b/src/data/roadmaps/python/content/105-python-package-managers/index.md index 92e50117a..0a65c7650 100644 --- a/src/data/roadmaps/python/content/105-python-package-managers/index.md +++ b/src/data/roadmaps/python/content/105-python-package-managers/index.md @@ -4,5 +4,4 @@ Package managers allow you to manage the dependencies (external code written by `PyPI` and `Pip` are the most common contenders but here are some other options available as well: -- [**Poetry**](https://python-poetry.org/) : Manages dependencies via isolation - [**PIPX**](https://github.com/pypa/pipx) : Isolation-based app deployment, so you don't have to affect the system or user PIP libraries. It enables you to try individual python CLI tools without affecting other dependencies. diff --git a/src/data/roadmaps/python/python.json b/src/data/roadmaps/python/python.json index ef2302ab4..4273608ab 100644 --- a/src/data/roadmaps/python/python.json +++ b/src/data/roadmaps/python/python.json @@ -1,4102 +1,4154 @@ { "mockup": { - "controls": { - "control": [ - { - "ID": "4269", - "typeID": "Arrow", - "zOrder": "0", - "w": "166", - "h": "88", - "measuredW": "150", - "measuredH": "100", - "x": "992", - "y": "1160", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0.047263099007864184, - "y": -0.34666666666657875 - }, - "p1": { - "x": 0.6549769871651536, - "y": 0.174281001668511 - }, - "p2": { - "x": 166.5, - "y": 88 - } - } - }, - { - "ID": "4270", - "typeID": "Arrow", - "zOrder": "1", - "w": "170", - "h": "86", - "measuredW": "150", - "measuredH": "100", - "x": "998", - "y": "1058", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 169.5, - "y": 0 - }, - "p1": { - "x": 0.3852928374516326, - "y": 0.17075916875184752 - }, - "p2": { - "x": -0.05325918258233742, - "y": 85.87473104876676 - } - } - }, - { - "ID": "4271", - "typeID": "Arrow", - "zOrder": "2", - "w": "3", - "h": "759", - "measuredW": "150", - "measuredH": "100", - "x": "877", - "y": "726", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0, - "y": -0.03469933135352221 - }, - "p1": { - "x": 0.4604452230239244, - "y": 0.0036766536054163926 - }, - "p2": { - "x": 0, - "y": 759.3807619344086 - } - } - }, - { - "ID": "4272", - "typeID": "Arrow", - "zOrder": "3", - "w": "185", - "h": "119", - "measuredW": "150", - "measuredH": "100", - "x": "641", - "y": "1360", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": -0.3653808564997689, - "y": 0.03342988349049847 - }, - "p1": { - "x": 0.469829518506724, - "y": -0.12837852167583222 - }, - "p2": { - "x": 184.49447129673388, - "y": 119.27981368077667 - } - } - }, - { - "ID": "4273", - "typeID": "Arrow", - "zOrder": "4", - "w": "134", - "h": "79", - "measuredW": "150", - "measuredH": "100", - "x": "635", - "y": "1402", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": -0.3653808564997689, - "y": 0.03342988349049847 - }, - "p1": { - "x": 0.4200622685609742, - "y": -0.07562893907101238 - }, - "p2": { - "x": 133.83651565076377, - "y": 78.99672142762438 - } - } - }, - { - "ID": "4274", - "typeID": "Arrow", - "zOrder": "5", - "w": "135", - "h": "32", - "measuredW": "150", - "measuredH": "100", - "x": "636", - "y": "1452", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": -0.3653808564997689, - "y": 0.03342988349049847 - }, - "p1": { - "x": 0.4200622685609743, - "y": -0.0756289390710124 - }, - "p2": { - "x": 134.55342339761137, - "y": 32.43053692131957 - } - } - }, - { - "ID": "4275", - "typeID": "Arrow", - "zOrder": "6", - "w": "140", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "636", - "y": "1498", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": -0.3653808564997689, - "y": 2.0334298834904985 - }, - "p1": { - "x": 0.4604452230239242, - "y": 0.0036766536054163973 - }, - "p2": { - "x": 140, - "y": -0.5 - } - } - }, - { - "ID": "4276", - "typeID": "Arrow", - "zOrder": "7", - "w": "1", - "h": "188", - "measuredW": "150", - "measuredH": "100", - "x": "1225", - "y": "1050", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4604452230239244, - "y": 0.0036766536054163917 - }, - "p2": { - "x": 0, - "y": 188.29796919462592 - } - } - }, - { - "ID": "4277", - "typeID": "Arrow", - "zOrder": "8", - "w": "1", - "h": "177", - "measuredW": "150", - "measuredH": "100", - "x": "879", - "y": "1494", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0, - "y": -0.03469933135352221 - }, - "p1": { - "x": 0.4604452230239244, - "y": 0.003676653605416393 - }, - "p2": { - "x": 0, - "y": 177.44974025524903 - } - } - }, - { - "ID": "4278", - "typeID": "Arrow", - "zOrder": "9", - "w": "87", - "h": "47", - "measuredW": "150", - "measuredH": "100", - "x": "1040", - "y": "1257", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": -0.03211016308387116, - "y": 47.543452474342075 - }, - "p1": { - "x": 0.412067352666043, - "y": 0.10477081384471411 - }, - "p2": { - "x": 87.06627144096728, - "y": 0.17415721599832068 - } - } - }, - { - "ID": "4279", - "typeID": "Arrow", - "zOrder": "10", - "w": "138", - "h": "87", - "measuredW": "150", - "measuredH": "100", - "x": "1041", - "y": "1260", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0.49593161944335407, - "y": 87.32862238510415 - }, - "p1": { - "x": 0.4648888466117703, - "y": 0.11370478535773203 - }, - "p2": { - "x": 138.01969204689271, - "y": 0.23024078105277113 - } - } - }, - { - "ID": "4280", - "typeID": "Arrow", - "zOrder": "11", - "w": "139", - "h": "134", - "measuredW": "150", - "measuredH": "100", - "x": "1043", - "y": "1262", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0.023973401970465602, - "y": 134.2259594259749 - }, - "p1": { - "x": 0.4719038339569139, - "y": 0.11801477411186584 - }, - "p2": { - "x": 139.07577561194717, - "y": -0.24171743642000365 - } - } - }, - { - "ID": "4283", - "typeID": "Arrow", - "zOrder": "12", - "w": "112", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1017", - "y": "1252", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0.047263099007864184, - "y": 0.6533333333334213 - }, - "p1": { - "x": 0.4604452230239243, - "y": 0.0036766536054163913 - }, - "p2": { - "x": 111.59431322349451, - "y": 0.6533333333334213 - } - } - }, - { - "ID": "4284", - "typeID": "Arrow", - "zOrder": "13", - "w": "112", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1017", - "y": "1047", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0.047263099007864184, - "y": 0.6533333333334213 - }, - "p1": { - "x": 0.4604452230239243, - "y": 0.0036766536054163913 - }, - "p2": { - "x": 111.59431322349451, - "y": 0.6533333333334213 - } - } - }, - { - "ID": "4285", - "typeID": "Arrow", - "zOrder": "14", - "w": "294", - "h": "468", - "measuredW": "150", - "measuredH": "100", - "x": "520", - "y": "733", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 289.7775635498863, - "y": -0.48328505825475077 - }, - "p1": { - "x": 0.5876470144844372, - "y": 0.25068750623071534 - }, - "p2": { - "x": -0.3798456673545729, - "y": 467.3740759577104 - } - } - }, - { - "ID": "4286", - "typeID": "Canvas", - "zOrder": "15", - "w": "131", - "h": "166", - "measuredW": "100", - "measuredH": "70", - "x": "401", - "y": "1133" - }, - { - "ID": "4287", - "typeID": "Arrow", - "zOrder": "16", - "w": "278", - "h": "304", - "measuredW": "150", - "measuredH": "100", - "x": "514", - "y": "739", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 278.60848608141043, - "y": -0.474107944288221 - }, - "p1": { - "x": 0.5805567346688285, - "y": 0.3260932937151271 - }, - "p2": { - "x": 0.4694310921026954, - "y": 287.966393526105 - } - } - }, - { - "ID": "4288", - "typeID": "Arrow", - "zOrder": "17", - "w": "1", - "h": "205", - "measuredW": "150", - "measuredH": "100", - "x": "672", - "y": "624", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 0.34052498951359667 - }, - "p1": { - "x": 0.46044522302392416, - "y": 0.0036766536054163913 - }, - "p2": { - "x": 0, - "y": 205.5 - } - } - }, - { - "ID": "4289", - "typeID": "Arrow", - "zOrder": "18", - "w": "129", - "h": "131", - "measuredW": "150", - "measuredH": "100", - "x": "527", - "y": "590", - "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": "4290", - "typeID": "Arrow", - "zOrder": "19", - "w": "128", - "h": "91", - "measuredW": "150", - "measuredH": "100", - "x": "527", - "y": "637", - "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": "4291", - "typeID": "Arrow", - "zOrder": "20", - "w": "134", - "h": "50", - "measuredW": "150", - "measuredH": "100", - "x": "525", - "y": "684", - "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": "4292", - "typeID": "Arrow", - "zOrder": "21", - "w": "138", - "h": "6", - "measuredW": "150", - "measuredH": "100", - "x": "516", - "y": "737", - "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": "4293", - "typeID": "Arrow", - "zOrder": "22", - "w": "113", - "h": "115", - "measuredW": "150", - "measuredH": "100", - "x": "876", - "y": "618", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 112.5, - "y": -0.5 - }, - "p1": { - "x": 0.48937720509145993, - "y": -0.20691804593983584 - }, - "p2": { - "x": -0.29660178475955945, - "y": 114.83149154894579 - } - } - }, - { - "ID": "4294", - "typeID": "Arrow", - "zOrder": "23", - "w": "1", - "h": "76", - "measuredW": "150", - "measuredH": "100", - "x": "1114", - "y": "611", - "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": "4295", - "typeID": "Arrow", - "zOrder": "24", - "w": "221", - "h": "117", - "measuredW": "150", - "measuredH": "100", - "x": "764", - "y": "489", - "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": "4296", - "typeID": "Arrow", - "zOrder": "25", - "w": "1", - "h": "95", - "measuredW": "150", - "measuredH": "100", - "x": "764", - "y": "179", - "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": "4297", - "typeID": "Arrow", - "zOrder": "26", - "w": "1", - "h": "80", - "measuredW": "150", - "measuredH": "100", - "x": "764", - "y": "282", - "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": "4298", - "typeID": "Arrow", - "zOrder": "27", - "w": "96", - "h": "46", - "measuredW": "150", - "measuredH": "100", - "x": "891", - "y": "436", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 95.72077500246428, - "y": 0.33535944713611343 - }, - "p1": { - "x": 0.5365907376221624, - "y": 0.09967779237460443 - }, - "p2": { - "x": 0, - "y": 46 - } - } - }, - { - "ID": "4299", - "typeID": "Arrow", - "zOrder": "28", - "w": "98", - "h": "43", - "measuredW": "150", - "measuredH": "100", - "x": "887", - "y": "495", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 98.30225589020824, - "y": 43.46873552956811 - }, - "p1": { - "x": 0.3374725601408122, - "y": -0.11051464136788798 - }, - "p2": { - "x": 0, - "y": 0 - } - } - }, - { - "ID": "4300", - "typeID": "Arrow", - "zOrder": "29", - "w": "99", - "h": "50", - "measuredW": "150", - "measuredH": "100", - "x": "575", - "y": "436", - "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": "4301", - "typeID": "Arrow", - "zOrder": "30", - "w": "99", - "h": "50", - "measuredW": "150", - "measuredH": "100", - "x": "576", - "y": "492", - "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": "4302", - "typeID": "Arrow", - "zOrder": "31", - "w": "115", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "564", - "y": "487", - "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": "4303", - "typeID": "Arrow", - "zOrder": "32", - "w": "143", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "867", - "y": "487", - "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": "4304", - "typeID": "Label", - "zOrder": "33", - "measuredW": "87", - "measuredH": "36", - "x": "721", - "y": "368", - "properties": { - "text": "Python", - "size": "28" - } - }, - { - "ID": "4305", - "typeID": "Arrow", - "zOrder": "34", - "w": "1", - "h": "55", - "measuredW": "150", - "measuredH": "100", - "x": "764", - "y": "420", - "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": "4306", - "typeID": "__group__", - "zOrder": "35", - "measuredW": "262", - "measuredH": "43", - "w": "262", - "h": "43", - "x": "644", - "y": "467", - "properties": { - "controlName": "100-python-basics" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", + "controls": { + "control": [ + { + "ID": "881", + "typeID": "Arrow", "zOrder": "0", - "w": "262", - "h": "43", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + "w": "166", + "h": "88", + "measuredW": "150", + "measuredH": "100", + "x": "992", + "y": "1160", "properties": { - "color": "16776960" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0.047263099007864184, + "y": -0.34666666666657875 + }, + "p1": { + "x": 0.6549769871651536, + "y": 0.174281001668511 + }, + "p2": { + "x": 166.5, + "y": 88 + } } - }, - { - "ID": "1", - "typeID": "Label", + }, + { + "ID": "882", + "typeID": "Arrow", "zOrder": "1", - "measuredW": "123", - "measuredH": "24", - "x": "69", - "y": "10", - "properties": { - "size": "16", - "text": "Learn the Basics" - } - } - ] - } - } - }, - { - "ID": "4307", - "typeID": "__group__", - "zOrder": "36", - "measuredW": "222", - "measuredH": "42", - "w": "222", - "h": "42", - "x": "359", - "y": "422", - "properties": { - "controlName": "100-python-basics:basic-syntax" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + "w": "170", + "h": "86", + "measuredW": "150", + "measuredH": "100", + "x": "998", + "y": "1058", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 169.5, + "y": 0 + }, + "p1": { + "x": 0.3852928374516326, + "y": 0.17075916875184752 + }, + "p2": { + "x": -0.05325918258233742, + "y": 85.87473104876676 + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "95", - "measuredW": "92", - "measuredH": "24", - "x": "64", - "y": "9", + }, + { + "ID": "883", + "typeID": "Arrow", + "zOrder": "2", + "w": "3", + "h": "759", + "measuredW": "150", + "measuredH": "100", + "x": "877", + "y": "726", "properties": { - "size": "16", - "text": "Basic Syntax" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": -0.03469933135352221 + }, + "p1": { + "x": 0.4604452230239244, + "y": 0.0036766536054163926 + }, + "p2": { + "x": 0, + "y": 759.3807619344086 + } } - } - ] - } - } - }, - { - "ID": "4308", - "typeID": "__group__", - "zOrder": "37", - "measuredW": "222", - "measuredH": "42", - "w": "222", - "h": "42", - "x": "359", - "y": "468", - "properties": { - "controlName": "101-python-basics:variables-and-datatypes" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "884", + "typeID": "Arrow", + "zOrder": "3", + "w": "185", + "h": "119", + "measuredW": "150", + "measuredH": "100", + "x": "641", + "y": "1360", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.3653808564997689, + "y": 0.03342988349049847 + }, + "p1": { + "x": 0.469829518506724, + "y": -0.12837852167583222 + }, + "p2": { + "x": 184.49447129673388, + "y": 119.27981368077667 + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "188", - "measuredW": "183", - "measuredH": "24", - "x": "16", - "y": "9", + }, + { + "ID": "885", + "typeID": "Arrow", + "zOrder": "4", + "w": "134", + "h": "79", + "measuredW": "150", + "measuredH": "100", + "x": "635", + "y": "1402", "properties": { - "size": "16", - "text": "Variables and Data Types" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.3653808564997689, + "y": 0.03342988349049847 + }, + "p1": { + "x": 0.4200622685609742, + "y": -0.07562893907101238 + }, + "p2": { + "x": 133.83651565076377, + "y": 78.99672142762438 + } } - } - ] - } - } - }, - { - "ID": "4309", - "typeID": "__group__", - "zOrder": "38", - "measuredW": "256", - "measuredH": "42", - "w": "256", - "h": "42", - "x": "978", - "y": "514", - "properties": { - "controlName": "105-python-basics:lists-tuples-sets-dictionaries" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "256", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "886", + "typeID": "Arrow", + "zOrder": "5", + "w": "135", + "h": "32", + "measuredW": "150", + "measuredH": "100", + "x": "636", + "y": "1452", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.3653808564997689, + "y": 0.03342988349049847 + }, + "p1": { + "x": 0.4200622685609743, + "y": -0.0756289390710124 + }, + "p2": { + "x": 134.55342339761137, + "y": 32.43053692131957 + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "221", - "measuredH": "24", - "x": "17", - "y": "9", + }, + { + "ID": "887", + "typeID": "Arrow", + "zOrder": "6", + "w": "140", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "636", + "y": "1498", "properties": { - "size": "16", - "text": "Lists, Tuples, Sets, Dictionaries" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.3653808564997689, + "y": 2.0334298834904985 + }, + "p1": { + "x": 0.4604452230239242, + "y": 0.0036766536054163973 + }, + "p2": { + "x": 140, + "y": -0.5 + } } - } - ] - } - } - }, - { - "ID": "4310", - "typeID": "__group__", - "zOrder": "39", - "measuredW": "222", - "measuredH": "42", - "w": "222", - "h": "42", - "x": "359", - "y": "514", - "properties": { - "controlName": "102-python-basics:conditionals" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "888", + "typeID": "Arrow", + "zOrder": "7", + "w": "1", + "h": "188", + "measuredW": "150", + "measuredH": "100", + "x": "1225", + "y": "1050", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4604452230239244, + "y": 0.0036766536054163917 + }, + "p2": { + "x": 0, + "y": 188.29796919462592 + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "92", - "measuredW": "90", - "measuredH": "24", - "x": "65", - "y": "9", + }, + { + "ID": "889", + "typeID": "Arrow", + "zOrder": "8", + "w": "1", + "h": "177", + "measuredW": "150", + "measuredH": "100", + "x": "879", + "y": "1494", "properties": { - "size": "16", - "text": "Conditionals" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": -0.03469933135352221 + }, + "p1": { + "x": 0.4604452230239244, + "y": 0.003676653605416393 + }, + "p2": { + "x": 0, + "y": 177.44974025524903 + } } - } - ] - } - } - }, - { - "ID": "4311", - "typeID": "__group__", - "zOrder": "40", - "measuredW": "254", - "measuredH": "42", - "w": "254", - "h": "42", - "x": "978", - "y": "421", - "properties": { - "controlName": "103-python-basics:typecasting-exceptions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "254", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "890", + "typeID": "Arrow", + "zOrder": "9", + "w": "87", + "h": "47", + "measuredW": "150", + "measuredH": "100", + "x": "1040", + "y": "1257", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.03211016308387116, + "y": 47.543452474342075 + }, + "p1": { + "x": 0.412067352666043, + "y": 0.10477081384471411 + }, + "p2": { + "x": 87.06627144096728, + "y": 0.17415721599832068 + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "181", - "measuredH": "24", - "x": "37", - "y": "9", + }, + { + "ID": "891", + "typeID": "Arrow", + "zOrder": "10", + "w": "138", + "h": "87", + "measuredW": "150", + "measuredH": "100", + "x": "1041", + "y": "1260", "properties": { - "size": "16", - "text": "Type Casting, Exceptions" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0.49593161944335407, + "y": 87.32862238510415 + }, + "p1": { + "x": 0.4648888466117703, + "y": 0.11370478535773203 + }, + "p2": { + "x": 138.01969204689271, + "y": 0.23024078105277113 + } } - } - ] - } - } - }, - { - "ID": "4312", - "typeID": "__group__", - "zOrder": "41", - "measuredW": "256", - "measuredH": "42", - "w": "256", - "h": "42", - "x": "978", - "y": "468", - "properties": { - "controlName": "104-python-basics:functions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "256", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "892", + "typeID": "Arrow", + "zOrder": "11", + "w": "139", + "h": "134", + "measuredW": "150", + "measuredH": "100", + "x": "1043", + "y": "1262", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0.023973401970465602, + "y": 134.2259594259749 + }, + "p1": { + "x": 0.4719038339569139, + "y": 0.11801477411186584 + }, + "p2": { + "x": 139.07577561194717, + "y": -0.24171743642000365 + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "200", - "measuredW": "198", - "measuredH": "24", - "x": "28", - "y": "9", + }, + { + "ID": "893", + "typeID": "Arrow", + "zOrder": "12", + "w": "112", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1017", + "y": "1252", "properties": { - "text": "Functions, Builtin Functions", - "size": "16" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0.047263099007864184, + "y": 0.6533333333334213 + }, + "p1": { + "x": 0.4604452230239243, + "y": 0.0036766536054163913 + }, + "p2": { + "x": 111.59431322349451, + "y": 0.6533333333334213 + } } - } - ] - } - } - }, - { - "ID": "4313", - "typeID": "__group__", - "zOrder": "42", - "measuredW": "262", - "measuredH": "43", - "w": "262", - "h": "43", - "x": "973", - "y": "591", - "properties": { - "controlName": "101-data-structures-and-algorithms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "262", - "h": "43", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "894", + "typeID": "Arrow", + "zOrder": "13", + "w": "112", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1017", + "y": "1047", "properties": { - "color": "16776960" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0.047263099007864184, + "y": 0.6533333333334213 + }, + "p1": { + "x": 0.4604452230239243, + "y": 0.0036766536054163913 + }, + "p2": { + "x": 111.59431322349451, + "y": 0.6533333333334213 + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "219", - "measuredH": "24", - "x": "21", - "y": "10", + }, + { + "ID": "895", + "typeID": "Arrow", + "zOrder": "14", + "w": "297", + "h": "511", + "measuredW": "150", + "measuredH": "100", + "x": "522", + "y": "733", "properties": { - "size": "16", - "text": "Datastructures and Algorithms" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 287.7775635498863, + "y": -0.48328505825475077 + }, + "p1": { + "x": 0.5876470144844372, + "y": 0.25068750623071534 + }, + "p2": { + "x": -0.38112074454181766, + "y": 510.0787577061892 + } } - } - ] - } - } - }, - { - "ID": "4314", - "typeID": "__group__", - "zOrder": "43", - "measuredW": "222", - "measuredH": "42", - "w": "222", - "h": "42", - "x": "1014", - "y": "666", - "properties": { - "controlName": "100-data-structures-and-algorithms:arrays-linked-lists" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", + }, + { + "ID": "896", "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "42", + "zOrder": "15", + "w": "131", + "h": "166", "measuredW": "100", "measuredH": "70", - "x": "0", - "y": "0", + "x": "401", + "y": "1169" + }, + { + "ID": "897", + "typeID": "Arrow", + "zOrder": "16", + "w": "278", + "h": "304", + "measuredW": "150", + "measuredH": "100", + "x": "514", + "y": "739", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 278.60848608141043, + "y": -0.474107944288221 + }, + "p1": { + "x": 0.5805567346688285, + "y": 0.3260932937151271 + }, + "p2": { + "x": 0.4694310921026954, + "y": 287.966393526105 + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "168", - "measuredH": "24", - "x": "27", - "y": "9", + }, + { + "ID": "898", + "typeID": "Arrow", + "zOrder": "17", + "w": "1", + "h": "205", + "measuredW": "150", + "measuredH": "100", + "x": "672", + "y": "624", "properties": { - "size": "16", - "text": "Arrays and Linked Lists" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0.34052498951359667 + }, + "p1": { + "x": 0.46044522302392416, + "y": 0.0036766536054163913 + }, + "p2": { + "x": 0, + "y": 205.5 + } } - } - ] - } - } - }, - { - "ID": "4315", - "typeID": "__group__", - "zOrder": "44", - "measuredW": "222", - "measuredH": "42", - "w": "222", - "h": "42", - "x": "1014", - "y": "711", - "properties": { - "controlName": "101-data-structures-and-algorithms:heaps-stacks-queues" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "899", + "typeID": "Arrow", + "zOrder": "18", + "w": "129", + "h": "131", + "measuredW": "150", + "measuredH": "100", + "x": "527", + "y": "590", "properties": { - "color": "16770457" + "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": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "195", - "measuredH": "24", - "x": "14", - "y": "8", + }, + { + "ID": "900", + "typeID": "Arrow", + "zOrder": "19", + "w": "128", + "h": "91", + "measuredW": "150", + "measuredH": "100", + "x": "527", + "y": "637", "properties": { - "size": "16", - "text": "Heaps, Stacks and Queues" + "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": "4316", - "typeID": "__group__", - "zOrder": "45", - "measuredW": "222", - "measuredH": "42", - "w": "222", - "h": "42", - "x": "1015", - "y": "757", - "properties": { - "controlName": "102-data-structures-and-algorithms:hash-tables" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "901", + "typeID": "Arrow", + "zOrder": "20", + "w": "134", + "h": "50", + "measuredW": "150", + "measuredH": "100", + "x": "525", + "y": "684", "properties": { - "color": "16770457" + "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": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "89", - "measuredH": "24", - "x": "66", - "y": "9", + }, + { + "ID": "902", + "typeID": "Arrow", + "zOrder": "21", + "w": "138", + "h": "6", + "measuredW": "150", + "measuredH": "100", + "x": "516", + "y": "737", "properties": { - "size": "16", - "text": "Hash Tables" + "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": "4317", - "typeID": "__group__", - "zOrder": "46", - "measuredW": "222", - "measuredH": "42", - "w": "222", - "h": "42", - "x": "1014", - "y": "802", - "properties": { - "controlName": "103-data-structures-and-algorithms:binary-search-trees" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "903", + "typeID": "Arrow", + "zOrder": "22", + "w": "113", + "h": "115", + "measuredW": "150", + "measuredH": "100", + "x": "876", + "y": "618", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 112.5, + "y": -0.5 + }, + "p1": { + "x": 0.48937720509145993, + "y": -0.20691804593983584 + }, + "p2": { + "x": -0.29660178475955945, + "y": 114.83149154894579 + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "146", - "measuredH": "24", - "x": "38", - "y": "9", + }, + { + "ID": "904", + "typeID": "Arrow", + "zOrder": "23", + "w": "1", + "h": "76", + "measuredW": "150", + "measuredH": "100", + "x": "1114", + "y": "611", "properties": { - "size": "16", - "text": "Binary Search Trees" + "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": "4318", - "typeID": "__group__", - "zOrder": "47", - "measuredW": "222", - "measuredH": "42", - "w": "222", - "h": "42", - "x": "1014", - "y": "848", - "properties": { - "controlName": "104-data-structures-and-algorithms:recursion" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "905", + "typeID": "Arrow", + "zOrder": "24", + "w": "221", + "h": "117", + "measuredW": "150", + "measuredH": "100", + "x": "764", + "y": "489", "properties": { - "color": "16770457" + "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": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "74", - "measuredH": "24", - "x": "74", - "y": "9", + }, + { + "ID": "906", + "typeID": "Arrow", + "zOrder": "25", + "w": "1", + "h": "95", + "measuredW": "150", + "measuredH": "100", + "x": "764", + "y": "179", "properties": { - "size": "16", - "text": "Recursion" + "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": "4319", - "typeID": "__group__", - "zOrder": "48", - "measuredW": "222", - "measuredH": "42", - "w": "222", - "h": "42", - "x": "1014", - "y": "894", - "properties": { - "controlName": "105-data-structures-and-algorithms:sorting-algorithms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "907", + "typeID": "Arrow", + "zOrder": "26", + "w": "1", + "h": "80", + "measuredW": "150", + "measuredH": "100", + "x": "764", + "y": "282", "properties": { - "color": "16770457" + "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": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "132", - "measuredH": "24", - "x": "45", - "y": "9", + }, + { + "ID": "908", + "typeID": "Arrow", + "zOrder": "27", + "w": "96", + "h": "46", + "measuredW": "150", + "measuredH": "100", + "x": "891", + "y": "436", "properties": { - "size": "16", - "text": "Sorting Algorithms" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 95.72077500246428, + "y": 0.33535944713611343 + }, + "p1": { + "x": 0.5365907376221624, + "y": 0.09967779237460443 + }, + "p2": { + "x": 0, + "y": 46 + } } - } - ] - } - } - }, - { - "ID": "4320", - "typeID": "__group__", - "zOrder": "49", - "measuredW": "311", - "measuredH": "43", - "w": "311", - "h": "43", - "x": "642", - "y": "710", - "properties": { - "controlName": "102-python-advanced-topics" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "311", + }, + { + "ID": "909", + "typeID": "Arrow", + "zOrder": "28", + "w": "98", "h": "43", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "122", - "measuredH": "24", - "x": "95", - "y": "10", + "measuredW": "150", + "measuredH": "100", + "x": "887", + "y": "495", "properties": { - "size": "16", - "text": "Advanced Topics" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 98.30225589020824, + "y": 43.46873552956811 + }, + "p1": { + "x": 0.3374725601408122, + "y": -0.11051464136788798 + }, + "p2": { + "x": 0, + "y": 0 + } } - } - ] - } - } - }, - { - "ID": "4321", - "typeID": "__group__", - "zOrder": "50", - "measuredW": "115", - "measuredH": "142", - "w": "115", - "h": "142", - "x": "600", - "y": "804", - "properties": { - "controlName": "105-python-advanced-topics:modules" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "115", - "h": "142", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "62", - "measuredH": "24", - "x": "27", - "y": "11", - "properties": { - "size": "16", - "text": "Modules" - } - } - ] - } - } - }, - { - "ID": "4322", - "typeID": "__group__", - "zOrder": "51", - "measuredW": "90", - "measuredH": "42", - "w": "90", - "h": "42", - "x": "613", - "y": "845", - "properties": { - "controlName": "100-python-advanced-topics:modules:builtin-modules" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "90", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "45", - "measuredH": "24", - "x": "22", - "y": "9", + }, + { + "ID": "910", + "typeID": "Arrow", + "zOrder": "29", + "w": "99", + "h": "50", + "measuredW": "150", + "measuredH": "100", + "x": "575", + "y": "436", "properties": { - "size": "16", - "text": "Builtin" + "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": "4323", - "typeID": "__group__", - "zOrder": "52", - "measuredW": "91", - "measuredH": "42", - "w": "91", - "h": "42", - "x": "612", - "y": "891", - "properties": { - "controlName": "101-python-advanced-topics:modules:custom-modules" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "91", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "911", + "typeID": "Arrow", + "zOrder": "30", + "w": "99", + "h": "50", + "measuredW": "150", + "measuredH": "100", + "x": "576", + "y": "492", "properties": { - "color": "16770457" + "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": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "56", - "measuredH": "24", - "x": "18", - "y": "9", + }, + { + "ID": "912", + "typeID": "Arrow", + "zOrder": "31", + "w": "115", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "564", + "y": "487", "properties": { - "size": "16", - "text": "Custom" + "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": "4324", - "typeID": "__group__", - "zOrder": "53", - "measuredW": "119", - "measuredH": "42", - "w": "119", - "h": "42", - "x": "596", - "y": "603", - "properties": { - "controlName": "104-python-advanced-topics:iterators" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "119", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "913", + "typeID": "Arrow", + "zOrder": "32", + "w": "143", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "867", + "y": "487", "properties": { - "color": "16770457" + "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": "1", + }, + { + "ID": "914", "typeID": "Label", - "zOrder": "1", - "measuredW": "62", - "measuredH": "24", - "x": "29", - "y": "9", - "properties": { - "size": "16", - "text": "Iterators" - } - } - ] - } - } - }, - { - "ID": "4325", - "typeID": "__group__", - "zOrder": "54", - "measuredW": "232", - "measuredH": "43", - "w": "232", - "h": "43", - "x": "781", - "y": "1130", - "properties": { - "controlName": "106-python-frameworks" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "232", - "h": "43", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + "zOrder": "33", + "measuredW": "87", + "measuredH": "36", + "x": "721", + "y": "368", "properties": { - "color": "16776960" + "text": "Python", + "size": "28" } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "140", - "measuredH": "24", - "x": "46", - "y": "10", + }, + { + "ID": "915", + "typeID": "Arrow", + "zOrder": "34", + "w": "1", + "h": "55", + "measuredW": "150", + "measuredH": "100", + "x": "764", + "y": "420", "properties": { - "size": "16", - "text": "Learn a Framework" + "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": "4326", - "typeID": "__group__", - "zOrder": "55", - "measuredW": "183", - "measuredH": "43", - "w": "183", - "h": "43", - "x": "752", - "y": "1467", - "properties": { - "controlName": "108-python-testing" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "183", + }, + { + "ID": "916", + "typeID": "__group__", + "zOrder": "35", + "measuredW": "262", + "measuredH": "43", + "w": "262", "h": "43", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "128", - "measuredH": "24", - "x": "28", - "y": "10", - "properties": { - "size": "16", - "text": "Testing your Apps" - } - } - ] - } - } - }, - { - "ID": "4327", - "typeID": "__group__", - "zOrder": "56", - "measuredW": "350", - "measuredH": "141", - "w": "350", - "h": "141", - "x": "1048", - "y": "153", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "350", - "h": "141", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "314", - "measuredH": "25", - "x": "14", - "y": "17", + "x": "644", + "y": "467", "properties": { - "size": "17", - "text": "Find the detailed version of this roadmap" + "controlName": "100-python-basics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "262", + "h": "43", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "123", + "measuredH": "24", + "x": "69", + "y": "10", + "properties": { + "size": "16", + "text": "Learn the Basics" + } + } + ] + } } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "319", - "measuredH": "25", - "x": "14", - "y": "45", + }, + { + "ID": "917", + "typeID": "__group__", + "zOrder": "36", + "measuredW": "222", + "measuredH": "42", + "w": "222", + "h": "42", + "x": "359", + "y": "422", "properties": { - "size": "17", - "text": "along with resources and other roadmaps" + "controlName": "100-python-basics:basic-syntax" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "95", + "measuredW": "92", + "measuredH": "24", + "x": "64", + "y": "9", + "properties": { + "size": "16", + "text": "Basic Syntax" + } + } + ] + } } - }, - { - "ID": "3", + }, + { + "ID": "918", "typeID": "__group__", - "zOrder": "3", - "measuredW": "320", - "measuredH": "45", - "w": "320", - "h": "45", - "x": "15", - "y": "81", + "zOrder": "37", + "measuredW": "222", + "measuredH": "42", + "w": "222", + "h": "42", + "x": "359", + "y": "468", "properties": { - "controlName": "ext_link:roadmap.sh" + "controlName": "101-python-basics:variables-and-datatypes" }, "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "320", - "h": "45", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "borderColor": "4273622", - "color": "4273622" - } - }, - { - "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", - "y": "9", - "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - } - ] - } + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "188", + "measuredW": "183", + "measuredH": "24", + "x": "16", + "y": "9", + "properties": { + "size": "16", + "text": "Variables and Data Types" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4328", - "typeID": "__group__", - "zOrder": "57", - "measuredW": "374", - "measuredH": "50", - "w": "374", - "h": "50", - "x": "618", - "y": "249", - "properties": { - "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", + }, + { + "ID": "919", + "typeID": "__group__", + "zOrder": "38", + "measuredW": "256", + "measuredH": "42", + "w": "256", + "h": "42", + "x": "978", + "y": "514", "properties": { - "color": "4273622", - "borderColor": "4273622" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "320", - "measuredH": "25", - "x": "27", - "y": "12", - "properties": { - "size": "17", - "text": "Backend roadmap till Language Selection", - "color": "16777215" - } - } - ] - } - } - }, - { - "ID": "4329", - "typeID": "Arrow", - "zOrder": "58", - "w": "1", - "h": "77", - "measuredW": "150", - "measuredH": "100", - "x": "444", - "y": "736", - "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": "4330", - "typeID": "__group__", - "zOrder": "59", - "measuredW": "131", - "measuredH": "184", - "w": "131", - "h": "184", - "x": "403", - "y": "719", - "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": "4331", - "typeID": "__group__", - "zOrder": "60", - "measuredW": "169", - "measuredH": "42", - "w": "169", - "h": "42", - "x": "350", - "y": "757", - "properties": { - "controlName": "102-python-advanced-topics:oop:classes" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "169", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "60", - "measuredW": "58", - "measuredH": "24", - "x": "55", - "y": "9", - "properties": { - "size": "16", - "text": "Classes" - } - } - ] - } - } - }, - { - "ID": "4332", - "typeID": "__group__", - "zOrder": "61", - "measuredW": "169", - "measuredH": "42", - "w": "169", - "h": "42", - "x": "350", - "y": "803", - "properties": { - "controlName": "101-python-advanced-topics:oop:inheritance" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "169", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "86", - "measuredW": "83", - "measuredH": "24", - "x": "42", - "y": "9", - "properties": { - "size": "16", - "text": "Inheritance" - } - } - ] - } - } - }, - { - "ID": "4333", - "typeID": "__group__", - "zOrder": "62", - "measuredW": "169", - "measuredH": "42", - "w": "169", - "h": "42", - "x": "350", - "y": "849", - "properties": { - "controlName": "100-python-advanced-topics:oop:methods-dunder" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "169", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "125", - "measuredH": "24", - "x": "20", - "y": "9", - "properties": { - "text": "Methods, Dunder", - "size": "16" - } - } - ] - } - } - }, - { - "ID": "4334", - "typeID": "__group__", - "zOrder": "63", - "measuredW": "172", - "measuredH": "42", - "w": "172", - "h": "42", - "x": "360", - "y": "621", - "properties": { - "controlName": "102-python-advanced-topics:decorators" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "172", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "81", - "measuredH": "24", - "x": "45", - "y": "9", - "properties": { - "size": "16", - "text": "Decorators" - } - } - ] - } - } - }, - { - "ID": "4335", - "typeID": "__group__", - "zOrder": "64", - "measuredW": "171", - "measuredH": "42", - "w": "171", - "h": "42", - "x": "361", - "y": "575", - "properties": { - "controlName": "101-python-advanced-topics:regular-expressions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "171", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "49", - "measuredH": "24", - "x": "61", - "y": "9", - "properties": { - "size": "16", - "text": "RegEx" + "controlName": "105-python-basics:lists-tuples-sets-dictionaries" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "256", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "221", + "measuredH": "24", + "x": "17", + "y": "9", + "properties": { + "size": "16", + "text": "Lists, Tuples, Sets, Dictionaries" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4336", - "typeID": "__group__", - "zOrder": "65", - "measuredW": "174", - "measuredH": "42", - "w": "174", - "h": "42", - "x": "359", - "y": "667", - "properties": { - "controlName": "103-python-advanced-topics:lambdas" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "174", + }, + { + "ID": "920", + "typeID": "__group__", + "zOrder": "39", + "measuredW": "222", + "measuredH": "42", + "w": "222", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "67", - "measuredH": "24", - "x": "53", - "y": "9", + "x": "359", + "y": "514", "properties": { - "text": "Lambdas", - "size": "16" - } - } - ] - } - } - }, - { - "ID": "4337", - "typeID": "__group__", - "zOrder": "66", - "measuredW": "173", - "measuredH": "193", - "w": "173", - "h": "193", - "x": "359", - "y": "919", - "properties": { - "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" + "controlName": "102-python-basics:conditionals" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "92", + "measuredW": "90", + "measuredH": "24", + "x": "65", + "y": "9", + "properties": { + "size": "16", + "text": "Conditionals" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4338", - "typeID": "__group__", - "zOrder": "67", - "measuredW": "148", - "measuredH": "42", - "w": "148", - "h": "42", - "x": "372", - "y": "965", - "properties": { - "controlName": "100-python-package-managers:pypi" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "148", + }, + { + "ID": "921", + "typeID": "__group__", + "zOrder": "40", + "measuredW": "254", + "measuredH": "42", + "w": "254", "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", + "x": "978", + "y": "421", "properties": { - "size": "16", - "text": "PyPI" + "controlName": "103-python-basics:typecasting-exceptions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "254", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "181", + "measuredH": "24", + "x": "37", + "y": "9", + "properties": { + "size": "16", + "text": "Type Casting, Exceptions" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4339", - "typeID": "__group__", - "zOrder": "68", - "measuredW": "146", - "measuredH": "42", - "w": "146", - "h": "42", - "x": "373", - "y": "1011", - "properties": { - "controlName": "101-python-package-managers:pip" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "146", + }, + { + "ID": "922", + "typeID": "__group__", + "zOrder": "41", + "measuredW": "256", + "measuredH": "42", + "w": "256", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + "x": "978", + "y": "468", "properties": { - "color": "16770457" + "controlName": "104-python-basics:functions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "256", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "200", + "measuredW": "198", + "measuredH": "24", + "x": "28", + "y": "9", + "properties": { + "text": "Functions, Builtin Functions", + "size": "16" + } + } + ] + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "61", - "y": "9", + }, + { + "ID": "923", + "typeID": "__group__", + "zOrder": "42", + "measuredW": "262", + "measuredH": "43", + "w": "262", + "h": "43", + "x": "973", + "y": "591", "properties": { - "size": "16", - "text": "Pip" + "controlName": "101-data-structures-and-algorithms" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "262", + "h": "43", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "219", + "measuredH": "24", + "x": "21", + "y": "10", + "properties": { + "size": "16", + "text": "Datastructures and Algorithms" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4340", - "typeID": "__group__", - "zOrder": "69", - "measuredW": "146", - "measuredH": "42", - "w": "146", - "h": "42", - "x": "373", - "y": "1057", - "properties": { - "controlName": "102-python-package-managers:conda" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "146", + }, + { + "ID": "924", + "typeID": "__group__", + "zOrder": "43", + "measuredW": "222", + "measuredH": "42", + "w": "222", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "48", - "measuredH": "24", - "x": "49", - "y": "9", - "properties": { - "size": "16", - "text": "Conda" - } - } - ] - } - } - }, - { - "ID": "4341", - "typeID": "__group__", - "zOrder": "70", - "measuredW": "352", - "measuredH": "54", - "w": "352", - "h": "54", - "x": "1047", - "y": "322", - "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", + "x": "1014", + "y": "666", "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", + "controlName": "100-data-structures-and-algorithms:arrays-linked-lists" + }, "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" - } - } - ] - } + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "168", + "measuredH": "24", + "x": "27", + "y": "9", + "properties": { + "size": "16", + "text": "Arrays and Linked Lists" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4342", - "typeID": "__group__", - "zOrder": "71", - "measuredW": "328", - "measuredH": "200", - "w": "328", - "h": "200", - "x": "235", - "y": "153", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "328", - "h": "200", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", + }, + { + "ID": "925", "typeID": "__group__", - "zOrder": "1", - "measuredW": "189", - "measuredH": "27", - "w": "189", - "h": "27", - "x": "28", - "y": "77", + "zOrder": "44", + "measuredW": "222", + "measuredH": "42", + "w": "222", + "h": "42", + "x": "1014", + "y": "711", "properties": { - "controlName": "ext_link:roadmap.sh/backend" + "controlName": "101-data-structures-and-algorithms:heaps-stacks-queues" }, "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Label", - "zOrder": "0", - "measuredW": "156", - "measuredH": "26", - "x": "33", - "y": "0", - "properties": { - "size": "18", - "text": "Backend Roadmap" - } - }, - { - "ID": "1", - "typeID": "__group__", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "w": "24", - "h": "24", - "x": "0", - "y": "3", - "children": { - "controls": { - "control": [ - { + "controls": { + "control": [ + { "ID": "0", - "typeID": "Icon", + "typeID": "Canvas", "zOrder": "0", - "measuredW": "24", - "measuredH": "24", + "w": "222", + "h": "42", + "measuredW": "100", + "measuredH": "70", "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16770457" } - }, - { + }, + { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", - "measuredW": "24", + "measuredW": "195", "measuredH": "24", - "x": "0", - "y": "0", + "x": "14", + "y": "8", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "size": "16", + "text": "Heaps, Stacks and Queues" } - } - ] - } - } - } - ] - } + } + ] + } } - }, - { - "ID": "2", + }, + { + "ID": "926", "typeID": "__group__", - "zOrder": "2", - "measuredW": "183", - "measuredH": "27", - "w": "183", - "h": "27", - "x": "28", - "y": "113", + "zOrder": "45", + "measuredW": "222", + "measuredH": "42", + "w": "222", + "h": "42", + "x": "1015", + "y": "757", "properties": { - "controlName": "ext_link:roadmap.sh/devops" + "controlName": "102-data-structures-and-algorithms:hash-tables" }, "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": [ - { + "controls": { + "control": [ + { "ID": "0", - "typeID": "Icon", + "typeID": "Canvas", "zOrder": "0", - "measuredW": "24", - "measuredH": "24", + "w": "222", + "h": "42", + "measuredW": "100", + "measuredH": "70", "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16770457" } - }, - { + }, + { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", - "measuredW": "24", + "measuredW": "89", "measuredH": "24", - "x": "0", - "y": "0", + "x": "66", + "y": "9", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "size": "16", + "text": "Hash Tables" } - } - ] - } - } - } - ] - } + } + ] + } } - }, - { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "measuredW": "209", - "measuredH": "32", - "x": "28", - "y": "29", - "properties": { - "size": "24", - "text": "Related Roadmaps" - } - }, - { - "ID": "4", + }, + { + "ID": "927", "typeID": "__group__", - "zOrder": "4", - "measuredW": "251", - "measuredH": "27", - "w": "251", - "h": "27", - "x": "28", - "y": "151", + "zOrder": "46", + "measuredW": "222", + "measuredH": "42", + "w": "222", + "h": "42", + "x": "1014", + "y": "802", "properties": { - "controlName": "ext_link:roadmap.sh/software-design-architecture" + "controlName": "103-data-structures-and-algorithms:binary-search-trees" }, "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": [ - { + "controls": { + "control": [ + { "ID": "0", - "typeID": "Icon", + "typeID": "Canvas", "zOrder": "0", - "measuredW": "24", - "measuredH": "24", + "w": "222", + "h": "42", + "measuredW": "100", + "measuredH": "70", "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16770457" } - }, - { + }, + { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", - "measuredW": "24", + "measuredW": "146", "measuredH": "24", - "x": "0", - "y": "0", + "x": "38", + "y": "9", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "size": "16", + "text": "Binary Search Trees" } - } - ] - } - } - } - ] - } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4343", - "typeID": "__group__", - "zOrder": "72", - "measuredW": "193", - "measuredH": "42", - "w": "193", - "h": "42", - "x": "322", - "y": "1150", - "properties": { - "controlName": "106-python-advanced-topics:list-comprehensions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "193", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "928", + "typeID": "__group__", + "zOrder": "47", + "measuredW": "222", + "measuredH": "42", + "w": "222", + "h": "42", + "x": "1014", + "y": "848", + "properties": { + "controlName": "104-data-structures-and-algorithms:recursion" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "74", + "measuredH": "24", + "x": "74", + "y": "9", + "properties": { + "size": "16", + "text": "Recursion" + } + } + ] + } + } + }, + { + "ID": "929", + "typeID": "__group__", + "zOrder": "48", + "measuredW": "222", + "measuredH": "42", + "w": "222", + "h": "42", + "x": "1014", + "y": "894", + "properties": { + "controlName": "105-data-structures-and-algorithms:sorting-algorithms" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "132", + "measuredH": "24", + "x": "45", + "y": "9", + "properties": { + "size": "16", + "text": "Sorting Algorithms" + } + } + ] + } + } + }, + { + "ID": "930", + "typeID": "__group__", + "zOrder": "49", + "measuredW": "311", + "measuredH": "43", + "w": "311", + "h": "43", + "x": "642", + "y": "710", + "properties": { + "controlName": "102-python-advanced-topics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "311", + "h": "43", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "122", + "measuredH": "24", + "x": "95", + "y": "10", + "properties": { + "size": "16", + "text": "Advanced Topics" + } + } + ] + } + } + }, + { + "ID": "931", + "typeID": "__group__", + "zOrder": "50", + "measuredW": "115", + "measuredH": "142", + "w": "115", + "h": "142", + "x": "600", + "y": "804", + "properties": { + "controlName": "105-python-advanced-topics:modules" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "115", + "h": "142", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "62", + "measuredH": "24", + "x": "27", + "y": "11", + "properties": { + "size": "16", + "text": "Modules" + } + } + ] + } + } + }, + { + "ID": "932", + "typeID": "__group__", + "zOrder": "51", + "measuredW": "90", + "measuredH": "42", + "w": "90", + "h": "42", + "x": "613", + "y": "845", + "properties": { + "controlName": "100-python-advanced-topics:modules:builtin-modules" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "90", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "45", + "measuredH": "24", + "x": "22", + "y": "9", + "properties": { + "size": "16", + "text": "Builtin" + } + } + ] + } + } + }, + { + "ID": "933", + "typeID": "__group__", + "zOrder": "52", + "measuredW": "91", + "measuredH": "42", + "w": "91", + "h": "42", + "x": "612", + "y": "891", + "properties": { + "controlName": "101-python-advanced-topics:modules:custom-modules" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "91", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "56", + "measuredH": "24", + "x": "18", + "y": "9", + "properties": { + "size": "16", + "text": "Custom" + } + } + ] + } + } + }, + { + "ID": "934", + "typeID": "__group__", + "zOrder": "53", + "measuredW": "119", + "measuredH": "42", + "w": "119", + "h": "42", + "x": "596", + "y": "603", + "properties": { + "controlName": "104-python-advanced-topics:iterators" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "119", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "62", + "measuredH": "24", + "x": "29", + "y": "9", + "properties": { + "size": "16", + "text": "Iterators" + } + } + ] + } + } + }, + { + "ID": "935", + "typeID": "__group__", + "zOrder": "54", + "measuredW": "232", + "measuredH": "43", + "w": "232", + "h": "43", + "x": "781", + "y": "1130", + "properties": { + "controlName": "106-python-frameworks" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "232", + "h": "43", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "140", + "measuredH": "24", + "x": "46", + "y": "10", + "properties": { + "size": "16", + "text": "Learn a Framework" + } + } + ] + } + } + }, + { + "ID": "936", + "typeID": "__group__", + "zOrder": "55", + "measuredW": "183", + "measuredH": "43", + "w": "183", + "h": "43", + "x": "752", + "y": "1467", + "properties": { + "controlName": "108-python-testing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "183", + "h": "43", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "128", + "measuredH": "24", + "x": "28", + "y": "10", + "properties": { + "size": "16", + "text": "Testing your Apps" + } + } + ] + } + } + }, + { + "ID": "937", + "typeID": "__group__", + "zOrder": "56", + "measuredW": "350", + "measuredH": "141", + "w": "350", + "h": "141", + "x": "1048", + "y": "153", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "350", + "h": "141", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "314", + "measuredH": "25", + "x": "14", + "y": "17", + "properties": { + "size": "17", + "text": "Find the detailed version of this roadmap" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "319", + "measuredH": "25", + "x": "14", + "y": "45", + "properties": { + "size": "17", + "text": "along with resources and other roadmaps" + } + }, + { + "ID": "3", + "typeID": "__group__", + "zOrder": "3", + "measuredW": "320", + "measuredH": "45", + "w": "320", + "h": "45", + "x": "15", + "y": "81", + "properties": { + "controlName": "ext_link:roadmap.sh" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "320", + "h": "45", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "borderColor": "4273622", + "color": "4273622" + } + }, + { + "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", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" + } + } + ] + } + } + } + ] + } + } + }, + { + "ID": "938", + "typeID": "__group__", + "zOrder": "57", + "measuredW": "374", + "measuredH": "50", + "w": "374", + "h": "50", + "x": "618", + "y": "249", + "properties": { + "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": "320", + "measuredH": "25", + "x": "27", + "y": "12", + "properties": { + "size": "17", + "text": "Backend roadmap till Language Selection", + "color": "16777215" + } + } + ] + } + } + }, + { + "ID": "939", + "typeID": "Arrow", + "zOrder": "58", + "w": "1", + "h": "77", + "measuredW": "150", + "measuredH": "100", + "x": "444", + "y": "736", + "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": "940", + "typeID": "__group__", + "zOrder": "59", + "measuredW": "131", + "measuredH": "184", + "w": "131", + "h": "184", + "x": "403", + "y": "719", + "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": "941", + "typeID": "__group__", + "zOrder": "60", + "measuredW": "169", + "measuredH": "42", + "w": "169", + "h": "42", + "x": "350", + "y": "757", + "properties": { + "controlName": "102-python-advanced-topics:oop:classes" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "60", + "measuredW": "58", + "measuredH": "24", + "x": "55", + "y": "9", + "properties": { + "size": "16", + "text": "Classes" + } + } + ] + } + } + }, + { + "ID": "942", + "typeID": "__group__", + "zOrder": "61", + "measuredW": "169", + "measuredH": "42", + "w": "169", + "h": "42", + "x": "350", + "y": "803", + "properties": { + "controlName": "101-python-advanced-topics:oop:inheritance" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "86", + "measuredW": "83", + "measuredH": "24", + "x": "42", + "y": "9", + "properties": { + "size": "16", + "text": "Inheritance" + } + } + ] + } + } + }, + { + "ID": "943", + "typeID": "__group__", + "zOrder": "62", + "measuredW": "169", + "measuredH": "42", + "w": "169", + "h": "42", + "x": "350", + "y": "849", + "properties": { + "controlName": "100-python-advanced-topics:oop:methods-dunder" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "125", + "measuredH": "24", + "x": "20", + "y": "9", + "properties": { + "text": "Methods, Dunder", + "size": "16" + } + } + ] + } + } + }, + { + "ID": "944", + "typeID": "__group__", + "zOrder": "63", + "measuredW": "172", + "measuredH": "42", + "w": "172", + "h": "42", + "x": "360", + "y": "621", + "properties": { + "controlName": "102-python-advanced-topics:decorators" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "172", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "81", + "measuredH": "24", + "x": "45", + "y": "9", + "properties": { + "size": "16", + "text": "Decorators" + } + } + ] + } + } + }, + { + "ID": "945", + "typeID": "__group__", + "zOrder": "64", + "measuredW": "171", + "measuredH": "42", + "w": "171", + "h": "42", + "x": "361", + "y": "575", "properties": { - "color": "16770457" + "controlName": "101-python-advanced-topics:regular-expressions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "171", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "49", + "measuredH": "24", + "x": "61", + "y": "9", + "properties": { + "size": "16", + "text": "RegEx" + } + } + ] + } + } + }, + { + "ID": "946", + "typeID": "__group__", + "zOrder": "65", + "measuredW": "174", + "measuredH": "42", + "w": "174", + "h": "42", + "x": "359", + "y": "667", + "properties": { + "controlName": "103-python-advanced-topics:lambdas" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "174", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "67", + "measuredH": "24", + "x": "53", + "y": "9", + "properties": { + "text": "Lambdas", + "size": "16" + } + } + ] + } + } + }, + { + "ID": "947", + "typeID": "__group__", + "zOrder": "66", + "measuredW": "173", + "measuredH": "241", + "w": "173", + "h": "241", + "x": "359", + "y": "919", + "properties": { + "controlName": "105-python-package-managers" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "173", + "h": "241", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "141", + "measuredW": "141", + "measuredH": "24", + "x": "16", + "y": "16", + "properties": { + "text": "Package Managers", + "size": "16" + } + } + ] + } + } + }, + { + "ID": "948", + "typeID": "__group__", + "zOrder": "67", + "measuredW": "148", + "measuredH": "42", + "w": "148", + "h": "42", + "x": "372", + "y": "965", + "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" + } + } + ] + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "154", - "measuredH": "24", - "x": "20", - "y": "9", + }, + { + "ID": "949", + "typeID": "__group__", + "zOrder": "68", + "measuredW": "146", + "measuredH": "42", + "w": "146", + "h": "42", + "x": "373", + "y": "1011", "properties": { - "size": "16", - "text": "List Comprehensions" + "controlName": "101-python-package-managers:pip" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "146", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "61", + "y": "9", + "properties": { + "size": "16", + "text": "Pip" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4344", - "typeID": "__group__", - "zOrder": "73", - "measuredW": "193", - "measuredH": "42", - "w": "193", - "h": "42", - "x": "322", - "y": "1195", - "properties": { - "controlName": "107-python-advanced-topics:generator-expressions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "193", + }, + { + "ID": "950", + "typeID": "__group__", + "zOrder": "69", + "measuredW": "146", + "measuredH": "42", + "w": "146", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + "x": "373", + "y": "1057", "properties": { - "color": "16770457" + "controlName": "102-python-package-managers:conda" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "146", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "24", + "x": "49", + "y": "9", + "properties": { + "size": "16", + "text": "Conda" + } + } + ] + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "167", - "measuredH": "24", - "x": "13", - "y": "9", + }, + { + "ID": "951", + "typeID": "__group__", + "zOrder": "70", + "measuredW": "352", + "measuredH": "54", + "w": "352", + "h": "54", + "x": "1047", + "y": "322", "properties": { - "size": "16", - "text": "Generator Expressions" + "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": "4345", - "typeID": "__group__", - "zOrder": "74", - "measuredW": "193", - "measuredH": "42", - "w": "193", - "h": "42", - "x": "322", - "y": "1240", - "properties": { - "controlName": "108-python-advanced-topics:paradigms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "952", + "typeID": "__group__", + "zOrder": "71", + "measuredW": "328", + "measuredH": "200", + "w": "328", + "h": "200", + "x": "235", + "y": "153", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "328", + "h": "200", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "__group__", + "zOrder": "1", + "measuredW": "189", + "measuredH": "27", + "w": "189", + "h": "27", + "x": "28", + "y": "77", + "properties": { + "controlName": "ext_link:roadmap.sh/backend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Label", + "zOrder": "0", + "measuredW": "156", + "measuredH": "26", + "x": "33", + "y": "0", + "properties": { + "size": "18", + "text": "Backend 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": "2", + "typeID": "__group__", + "zOrder": "2", + "measuredW": "183", + "measuredH": "27", + "w": "183", + "h": "27", + "x": "28", + "y": "113", + "properties": { + "controlName": "ext_link:roadmap.sh/devops" + }, + "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": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "209", + "measuredH": "32", + "x": "28", + "y": "29", + "properties": { + "size": "24", + "text": "Related Roadmaps" + } + }, + { + "ID": "4", + "typeID": "__group__", + "zOrder": "4", + "measuredW": "251", + "measuredH": "27", + "w": "251", + "h": "27", + "x": "28", + "y": "151", + "properties": { + "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": "953", + "typeID": "__group__", + "zOrder": "72", + "measuredW": "193", + "measuredH": "42", "w": "193", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + "x": "322", + "y": "1186", "properties": { - "color": "16770457" + "controlName": "106-python-advanced-topics:list-comprehensions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "193", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "154", + "measuredH": "24", + "x": "20", + "y": "9", + "properties": { + "size": "16", + "text": "List Comprehensions" + } + } + ] + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "77", - "measuredH": "24", - "x": "58", - "y": "9", + }, + { + "ID": "954", + "typeID": "__group__", + "zOrder": "73", + "measuredW": "193", + "measuredH": "42", + "w": "193", + "h": "42", + "x": "322", + "y": "1231", "properties": { - "size": "16", - "text": "Paradigms" + "controlName": "107-python-advanced-topics:generator-expressions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "193", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "167", + "measuredH": "24", + "x": "13", + "y": "9", + "properties": { + "size": "16", + "text": "Generator Expressions" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4346", - "typeID": "__group__", - "zOrder": "75", - "measuredW": "155", - "measuredH": "43", - "w": "155", - "h": "43", - "x": "1098", - "y": "1026", - "properties": { - "controlName": "100-python-frameworks:synchronous" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "155", - "h": "43", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + }, + { + "ID": "955", + "typeID": "__group__", + "zOrder": "74", + "measuredW": "193", + "measuredH": "42", + "w": "193", + "h": "42", + "x": "322", + "y": "1276", "properties": { - "color": "16770457" + "controlName": "108-python-advanced-topics:paradigms" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "193", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "77", + "measuredH": "24", + "x": "58", + "y": "9", + "properties": { + "size": "16", + "text": "Paradigms" + } + } + ] + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "93", - "measuredH": "24", - "x": "31", - "y": "10", + }, + { + "ID": "956", + "typeID": "__group__", + "zOrder": "75", + "measuredW": "155", + "measuredH": "43", + "w": "155", + "h": "43", + "x": "1098", + "y": "1026", "properties": { - "size": "16", - "text": "Synchronous" + "controlName": "100-python-frameworks:synchronous" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "155", + "h": "43", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "93", + "measuredH": "24", + "x": "31", + "y": "10", + "properties": { + "size": "16", + "text": "Synchronous" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4347", - "typeID": "__group__", - "zOrder": "76", - "measuredW": "87", - "measuredH": "42", - "w": "87", - "h": "42", - "x": "1201", - "y": "1131", - "properties": { - "controlName": "100-python-frameworks:synchronous:django" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "957", + "typeID": "__group__", + "zOrder": "76", + "measuredW": "87", + "measuredH": "42", "w": "87", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "52", - "measuredH": "24", - "x": "18", - "y": "9", + "x": "1201", + "y": "1131", "properties": { - "size": "16", - "text": "Django" + "controlName": "100-python-frameworks:synchronous:django" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "87", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "52", + "measuredH": "24", + "x": "18", + "y": "9", + "properties": { + "size": "16", + "text": "Django" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4348", - "typeID": "__group__", - "zOrder": "77", - "measuredW": "88", - "measuredH": "42", - "w": "88", - "h": "42", - "x": "1201", - "y": "1177", - "properties": { - "controlName": "101-python-frameworks:synchronous:flask" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "958", + "typeID": "__group__", + "zOrder": "77", + "measuredW": "88", + "measuredH": "42", "w": "88", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "38", - "measuredH": "24", - "x": "25", - "y": "9", + "x": "1201", + "y": "1177", "properties": { - "size": "16", - "text": "Flask" + "controlName": "101-python-frameworks:synchronous:flask" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "88", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "38", + "measuredH": "24", + "x": "25", + "y": "9", + "properties": { + "size": "16", + "text": "Flask" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4349", - "typeID": "__group__", - "zOrder": "78", - "measuredW": "88", - "measuredH": "42", - "w": "88", - "h": "42", - "x": "950", - "y": "1027", - "properties": { - "controlName": "102-python-frameworks:synchronous:pyramid" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "959", + "typeID": "__group__", + "zOrder": "78", + "measuredW": "88", + "measuredH": "42", "w": "88", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "58", - "measuredH": "24", - "x": "15", - "y": "9", + "x": "950", + "y": "1027", "properties": { - "size": "16", - "text": "Pyramid" + "controlName": "102-python-frameworks:synchronous:pyramid" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "88", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "58", + "measuredH": "24", + "x": "15", + "y": "9", + "properties": { + "size": "16", + "text": "Pyramid" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4350", - "typeID": "__group__", - "zOrder": "79", - "measuredW": "156", - "measuredH": "43", - "w": "156", - "h": "43", - "x": "1095", - "y": "1231", - "properties": { - "controlName": "101-python-frameworks:asynchronous" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "960", + "typeID": "__group__", + "zOrder": "79", + "measuredW": "156", + "measuredH": "43", "w": "156", "h": "43", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "101", - "measuredH": "24", - "x": "27", - "y": "10", - "properties": { - "size": "16", - "text": "Asynchronous" - } - } - ] - } - } - }, - { - "ID": "4351", - "typeID": "__group__", - "zOrder": "80", - "measuredW": "91", - "measuredH": "42", - "w": "91", - "h": "42", - "x": "956", - "y": "1231", - "properties": { - "controlName": "100-python-frameworks:asynchronous:gevent" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "91", - "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "50", - "measuredH": "24", - "x": "21", - "y": "9", + "x": "1095", + "y": "1231", "properties": { - "size": "16", - "text": "gevent" + "controlName": "101-python-frameworks:asynchronous" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "156", + "h": "43", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "101", + "measuredH": "24", + "x": "27", + "y": "10", + "properties": { + "size": "16", + "text": "Asynchronous" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4352", - "typeID": "__group__", - "zOrder": "81", - "measuredW": "89", - "measuredH": "42", - "w": "89", - "h": "42", - "x": "957", - "y": "1277", - "properties": { - "controlName": "101-python-frameworks:asynchronous:aiohttp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "89", + }, + { + "ID": "961", + "typeID": "__group__", + "zOrder": "80", + "measuredW": "91", + "measuredH": "42", + "w": "91", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + "x": "956", + "y": "1231", "properties": { - "color": "16770457" + "controlName": "100-python-frameworks:asynchronous:gevent" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "91", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "50", + "measuredH": "24", + "x": "21", + "y": "9", + "properties": { + "size": "16", + "text": "gevent" + } + } + ] + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "50", - "measuredH": "24", - "x": "20", - "y": "9", + }, + { + "ID": "962", + "typeID": "__group__", + "zOrder": "81", + "measuredW": "89", + "measuredH": "42", + "w": "89", + "h": "42", + "x": "957", + "y": "1277", "properties": { - "size": "16", - "text": "aiohttp" + "controlName": "101-python-frameworks:asynchronous:aiohttp" + }, + "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": "50", + "measuredH": "24", + "x": "20", + "y": "9", + "properties": { + "size": "16", + "text": "aiohttp" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4353", - "typeID": "__group__", - "zOrder": "82", - "measuredW": "91", - "measuredH": "42", - "w": "91", - "h": "42", - "x": "956", - "y": "1323", - "properties": { - "controlName": "102-python-frameworks:asynchronous:tornado" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "963", + "typeID": "__group__", + "zOrder": "82", + "measuredW": "91", + "measuredH": "42", "w": "91", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "60", - "measuredH": "24", - "x": "16", - "y": "9", + "x": "956", + "y": "1323", "properties": { - "size": "16", - "text": "Tornado" + "controlName": "102-python-frameworks:asynchronous:tornado" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "91", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "60", + "measuredH": "24", + "x": "16", + "y": "9", + "properties": { + "size": "16", + "text": "Tornado" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4354", - "typeID": "__group__", - "zOrder": "83", - "measuredW": "91", - "measuredH": "42", - "w": "91", - "h": "42", - "x": "956", - "y": "1369", - "properties": { - "controlName": "103-python-frameworks:asynchronous:sanic" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "964", + "typeID": "__group__", + "zOrder": "83", + "measuredW": "91", + "measuredH": "42", "w": "91", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "41", - "measuredH": "24", - "x": "25", - "y": "9", + "x": "956", + "y": "1369", "properties": { - "size": "16", - "text": "Sanic" + "controlName": "103-python-frameworks:asynchronous:sanic" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "91", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "41", + "measuredH": "24", + "x": "25", + "y": "9", + "properties": { + "size": "16", + "text": "Sanic" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4355", - "typeID": "__group__", - "zOrder": "84", - "measuredW": "89", - "measuredH": "42", - "w": "89", - "h": "42", - "x": "1199", - "y": "1085", - "properties": { - "controlName": "102-python-frameworks:fastapi" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "965", + "typeID": "__group__", + "zOrder": "84", + "measuredW": "89", + "measuredH": "42", "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", + "x": "1199", + "y": "1085", "properties": { - "size": "16", - "text": "FastAPI" + "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": "4356", - "typeID": "__group__", - "zOrder": "85", - "measuredW": "154", - "measuredH": "42", - "w": "154", - "h": "42", - "x": "493", - "y": "1479", - "properties": { - "controlName": "100-python-testing:unittest-pyunit" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "966", + "typeID": "__group__", + "zOrder": "85", + "measuredW": "154", + "measuredH": "42", "w": "154", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + "x": "493", + "y": "1479", "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "116", - "measuredH": "24", - "x": "19", - "y": "9", - "properties": { - "size": "16", - "text": "unittest / pyUnit" + "controlName": "100-python-testing:unittest-pyunit" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "154", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "116", + "measuredH": "24", + "x": "19", + "y": "9", + "properties": { + "size": "16", + "text": "unittest / pyUnit" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4357", - "typeID": "__group__", - "zOrder": "86", - "measuredW": "154", - "measuredH": "42", - "w": "154", - "h": "42", - "x": "493", - "y": "1432", - "properties": { - "controlName": "101-python-testing:pytest" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "967", + "typeID": "__group__", + "zOrder": "86", + "measuredW": "154", + "measuredH": "42", "w": "154", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "44", - "measuredH": "24", - "x": "55", - "y": "9", + "x": "493", + "y": "1432", "properties": { - "size": "16", - "text": "pytest" + "controlName": "101-python-testing:pytest" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "154", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "44", + "measuredH": "24", + "x": "55", + "y": "9", + "properties": { + "size": "16", + "text": "pytest" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4358", - "typeID": "__group__", - "zOrder": "87", - "measuredW": "154", - "measuredH": "42", - "w": "154", - "h": "42", - "x": "493", - "y": "1340", - "properties": { - "controlName": "102-python-testing:doctest" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "968", + "typeID": "__group__", + "zOrder": "87", + "measuredW": "154", + "measuredH": "42", "w": "154", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "54", - "measuredH": "24", - "x": "50", - "y": "9", + "x": "493", + "y": "1340", "properties": { - "size": "16", - "text": "doctest" + "controlName": "102-python-testing:doctest" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "154", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "54", + "measuredH": "24", + "x": "50", + "y": "9", + "properties": { + "size": "16", + "text": "doctest" + } + } + ] + } } - } - ] - } - } - }, - { - "ID": "4359", - "typeID": "__group__", - "zOrder": "88", - "measuredW": "154", - "measuredH": "42", - "w": "154", - "h": "42", - "x": "493", - "y": "1386", - "properties": { - "controlName": "102-python-testing:nose" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", + }, + { + "ID": "969", + "typeID": "__group__", + "zOrder": "88", + "measuredW": "154", + "measuredH": "42", "w": "154", "h": "42", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", + "x": "493", + "y": "1386", "properties": { - "color": "16770457" + "controlName": "102-python-testing:nose" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "154", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "36", + "measuredH": "24", + "x": "59", + "y": "9", + "properties": { + "size": "16", + "text": "nose" + } + } + ] + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "36", - "measuredH": "24", - "x": "59", - "y": "9", + }, + { + "ID": "970", + "typeID": "Arrow", + "zOrder": "89", + "w": "1", + "h": "139", + "measuredW": "150", + "measuredH": "100", + "x": "883", + "y": "1673", "properties": { - "size": "16", - "text": "nose" + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4438624012549725, + "y": -0.00008403832147459167 + }, + "p2": { + "x": 0, + "y": 139 + }, + "stroke": "dotted" } - } - ] - } - } - }, - { - "ID": "4360", - "typeID": "Arrow", - "zOrder": "89", - "w": "1", - "h": "139", - "measuredW": "150", - "measuredH": "100", - "x": "883", - "y": "1673", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4438624012549725, - "y": -0.00008403832147459167 - }, - "p2": { - "x": 0, - "y": 139 - }, - "stroke": "dotted" - } - }, - { - "ID": "4361", - "typeID": "TextArea", - "zOrder": "90", - "w": "552", - "h": "124", - "measuredW": "200", - "measuredH": "140", - "x": "595", - "y": "1604" - }, - { - "ID": "4362", - "typeID": "Label", - "zOrder": "91", - "measuredW": "468", - "measuredH": "25", - "x": "624", - "y": "1624", - "properties": { - "size": "17", - "text": "For ecosystem and more, check other tracks involving Python" - } - }, - { - "ID": "4363", - "typeID": "__group__", - "zOrder": "92", - "measuredW": "229", - "measuredH": "44", - "w": "229", - "h": "44", - "x": "890", - "y": "1659", - "properties": { - "controlName": "ext_link:roadmap.sh/devops" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", + }, + { + "ID": "971", "typeID": "TextArea", - "zOrder": "0", - "w": "229", - "h": "44", + "zOrder": "90", + "w": "552", + "h": "124", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", + "x": "595", + "y": "1604" + }, + { + "ID": "972", "typeID": "Label", - "zOrder": "1", - "measuredW": "141", + "zOrder": "91", + "measuredW": "468", "measuredH": "25", - "x": "44", - "y": "9", + "x": "624", + "y": "1624", "properties": { - "size": "17", - "text": "DevOps Roadmap" + "size": "17", + "text": "For ecosystem and more, check other tracks involving Python" } - } - ] - } - } - }, - { - "ID": "4364", - "typeID": "__group__", - "zOrder": "93", - "measuredW": "252", - "measuredH": "44", - "w": "252", - "h": "44", - "x": "624", - "y": "1659", - "properties": { - "controlName": "ext_link:roadmap.sh/backend" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", + }, + { + "ID": "973", + "typeID": "__group__", + "zOrder": "92", + "measuredW": "229", + "measuredH": "44", + "w": "229", + "h": "44", + "x": "890", + "y": "1659", + "properties": { + "controlName": "ext_link:roadmap.sh/devops" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "229", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "141", + "measuredH": "25", + "x": "44", + "y": "9", + "properties": { + "size": "17", + "text": "DevOps Roadmap" + } + } + ] + } + } + }, + { + "ID": "974", + "typeID": "__group__", + "zOrder": "93", + "measuredW": "252", + "measuredH": "44", "w": "252", "h": "44", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", + "x": "624", + "y": "1659", "properties": { - "color": "16770457" + "controlName": "ext_link:roadmap.sh/backend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "252", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "147", + "measuredH": "25", + "x": "52", + "y": "9", + "properties": { + "size": "17", + "text": "Backend Roadmap" + } + } + ] + } } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "147", - "measuredH": "25", - "x": "52", - "y": "9", + }, + { + "ID": "975", + "typeID": "__group__", + "zOrder": "94", + "measuredW": "146", + "measuredH": "42", + "w": "146", + "h": "42", + "x": "373", + "y": "1102", "properties": { - "size": "17", - "text": "Backend Roadmap" + "controlName": "103-python-package-managers:poetry" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "146", + "h": "42", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "47", + "measuredH": "24", + "x": "49", + "y": "9", + "properties": { + "size": "16", + "text": "Poetry" + } + } + ] + } } - } - ] - } - } - } - ] - }, - "attributes": { - "name": "New Wireframe 1 copy 8", - "order": 1000000.6428282561, - "parentID": null, - "notes": "" - }, - "branchID": "Master", - "resourceID": "960B5EDB-5533-4531-9B7D-06B4366EBEAE", - "mockupH": "1659", - "mockupW": "1164", - "measuredW": "1399", - "measuredH": "1812", - "version": "1.0" + } + ] + }, + "attributes": { + "name": "New Wireframe 1", + "order": 1000000, + "parentID": null, + "notes": "" + }, + "branchID": "Master", + "resourceID": "5A30BFEF-684E-429E-9C5D-BAAAC1A8339A", + "mockupH": "1659", + "mockupW": "1164", + "measuredW": "1399", + "measuredH": "1812", + "version": "1.0", + "calloutsOffset": { + "x": 235, + "y": 153 + } }, "groupOffset": { - "x": 0, - "y": 0 + "x": 0, + "y": 0 }, "dependencies": [], - "projectID": "file:///Users/kamrify/Desktop/New%20Roadmaps/Android%20Roadmap.bmpr" + "projectID": "file:///Users/dan/Library/Application%20Support/Balsamiq%20Wireframes/UnsavedFiles/New%20Project%201.bmpr" } \ No newline at end of file