diff --git a/content/roadmaps/108-python/content-paths.json b/content/roadmaps/108-python/content-paths.json
index da1091fdc..f9e4eda84 100644
--- a/content/roadmaps/108-python/content-paths.json
+++ b/content/roadmaps/108-python/content-paths.json
@@ -26,6 +26,9 @@
"python-advanced-topics:modules": "/roadmaps/108-python/content/102-python-advanced-topics/105-modules/readme.md",
"python-advanced-topics:modules:builtin-modules": "/roadmaps/108-python/content/102-python-advanced-topics/105-modules/100-builtin-modules.md",
"python-advanced-topics:modules:custom-modules": "/roadmaps/108-python/content/102-python-advanced-topics/105-modules/101-custom-modules.md",
+ "python-advanced-topics:list-comprehensions": "/roadmaps/108-python/content/102-python-advanced-topics/106-list-comprehensions.md",
+ "python-advanced-topics:generator-expressions": "/roadmaps/108-python/content/102-python-advanced-topics/107-generator-expressions.md",
+ "python-advanced-topics:paradigms": "/roadmaps/108-python/content/102-python-advanced-topics/108-paradigms.md",
"version-control-systems": "/roadmaps/108-python/content/103-version-control-systems/readme.md",
"version-control-systems:basic-git-usage": "/roadmaps/108-python/content/103-version-control-systems/100-basic-git-usage.md",
"repo-hosting-services": "/roadmaps/108-python/content/104-repo-hosting-services/readme.md",
diff --git a/content/roadmaps/108-python/content/102-python-advanced-topics/106-list-comprehensions.md b/content/roadmaps/108-python/content/102-python-advanced-topics/106-list-comprehensions.md
new file mode 100644
index 000000000..40a7122de
--- /dev/null
+++ b/content/roadmaps/108-python/content/102-python-advanced-topics/106-list-comprehensions.md
@@ -0,0 +1,7 @@
+# List Comprehensions
+
+List comprehensions are a concise way to create a list using a single line of code in Python. They are a powerful tool for creating and manipulating lists, and they can be used to simplify and shorten code.
+
+Free Content
+Python - List Comprehension
+Python List Comprehensions
diff --git a/content/roadmaps/108-python/content/102-python-advanced-topics/107-generator-expressions.md b/content/roadmaps/108-python/content/102-python-advanced-topics/107-generator-expressions.md
new file mode 100644
index 000000000..0f336b6d8
--- /dev/null
+++ b/content/roadmaps/108-python/content/102-python-advanced-topics/107-generator-expressions.md
@@ -0,0 +1,11 @@
+# Generator Compressions
+
+Generator comprehensions are a concise way to create a generator using a single line of code in Python. They are similar to list comprehensions, but instead of creating a list, they create a generator object that produces the values on-demand, as they are needed.
+
+Generator comprehensions are a useful tool for creating generators that generate a large sequence of values, as they allow you to create the generator without creating the entire sequence in memory at once. This can be more efficient and use less memory, especially for large sequences.
+
+Free Content
+Python Generator Expressions
+List Comprehensions in Python and Generator Expressions
+Python | Generator Expressions
+
diff --git a/content/roadmaps/108-python/content/102-python-advanced-topics/108-paradigms.md b/content/roadmaps/108-python/content/102-python-advanced-topics/108-paradigms.md
new file mode 100644
index 000000000..45f5158f1
--- /dev/null
+++ b/content/roadmaps/108-python/content/102-python-advanced-topics/108-paradigms.md
@@ -0,0 +1,13 @@
+# Python Paradigms
+
+Python is a multi-paradigm programming language, which means that it supports several programming paradigms. Some of the main paradigms supported by Python are:
+
+- Imperative programming: This paradigm focuses on telling the computer what to do, step by step. Python supports imperative programming with features such as variables, loops, and control structures.
+- Object-oriented programming (OOP): This paradigm is based on the idea of objects and their interactions. Python supports OOP with features such as classes, inheritance, and polymorphism.
+- Functional programming: This paradigm is based on the idea of functions as first-class citizens, and it emphasizes the use of pure functions and immutable data. Python supports functional programming with features such as higher-order functions, lambda expressions, and generators.
+- Aspect-oriented programming: This paradigm is based on the idea of separating cross-cutting concerns from the main functionality of a program. Python does not have built-in support for aspect-oriented programming, but it can be achieved using libraries or language extensions.
+
+Python's support for multiple paradigms makes it a versatile and flexible language, and it allows developers to choose the paradigm that best fits their needs.
+
+Programming Paradigms in Python
+
diff --git a/public/project/python.json b/public/project/python.json
index 4a625ef3d..e98eca19e 100644
--- a/public/project/python.json
+++ b/public/project/python.json
@@ -3,74 +3,75 @@
"controls": {
"control": [
{
- "ID": "14755",
+ "ID": "14770",
"typeID": "Arrow",
- "zOrder": "0",
+ "zOrder": "19",
"w": "1",
- "h": "82",
+ "h": "205",
"measuredW": "150",
"measuredH": "100",
- "x": "1136",
- "y": "1104",
+ "x": "652",
+ "y": "604",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "10027263",
+ "stroke": "dotted",
"p0": {
"x": 0,
- "y": -0.24280136823927023
+ "y": 0.34052498951359667
},
"p1": {
- "x": 0.4604452230239245,
- "y": 0.003676653605416392
+ "x": 0.46044522302392416,
+ "y": 0.0036766536054163913
},
"p2": {
"x": 0,
- "y": 82
- },
- "stroke": "dotted"
+ "y": 205.5
+ }
}
},
{
- "ID": "14756",
+ "ID": "14771",
"typeID": "Arrow",
- "zOrder": "1",
- "w": "199",
- "h": "108",
+ "zOrder": "20",
+ "w": "129",
+ "h": "131",
"measuredW": "150",
"measuredH": "100",
- "x": "847",
- "y": "1065",
+ "x": "507",
+ "y": "570",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "10027263",
+ "stroke": "dotted",
"p0": {
- "x": -0.5,
+ "x": 0,
"y": 0
},
"p1": {
- "x": 0.3700657239593706,
- "y": -0.20041824337781317
+ "x": 0.4613181955189419,
+ "y": -0.10434039987944232
},
"p2": {
- "x": 198.5,
- "y": 108
+ "x": 129,
+ "y": 130.5
}
}
},
{
- "ID": "14757",
+ "ID": "14772",
"typeID": "Arrow",
- "zOrder": "2",
- "w": "101",
- "h": "24",
+ "zOrder": "21",
+ "w": "128",
+ "h": "91",
"measuredW": "150",
"measuredH": "100",
- "x": "418",
- "y": "1047",
+ "x": "507",
+ "y": "617",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -79,28 +80,28 @@
"stroke": "dotted",
"p0": {
"x": 0,
- "y": 24.5
+ "y": 0
},
"p1": {
- "x": 0.4704601401249764,
- "y": 0.0798144290854005
+ "x": 0.461318195518942,
+ "y": -0.10434039987944228
},
"p2": {
- "x": 101,
- "y": 0.5
+ "x": 128,
+ "y": 90.5
}
}
},
{
- "ID": "14758",
+ "ID": "14773",
"typeID": "Arrow",
- "zOrder": "3",
- "w": "129",
- "h": "166",
+ "zOrder": "22",
+ "w": "134",
+ "h": "50",
"measuredW": "150",
"measuredH": "100",
- "x": "424",
- "y": "1110",
+ "x": "505",
+ "y": "664",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -109,88 +110,87 @@
"stroke": "dotted",
"p0": {
"x": 0,
- "y": 165.5
+ "y": 0
},
"p1": {
- "x": 0.5753331674095528,
- "y": 0.07360228069778492
+ "x": 0.461318195518942,
+ "y": -0.10434039987944237
},
"p2": {
- "x": 129,
- "y": -0.5
+ "x": 134,
+ "y": 49.5
}
}
},
{
- "ID": "14759",
+ "ID": "14774",
"typeID": "Arrow",
- "zOrder": "4",
- "w": "86",
- "h": "27",
+ "zOrder": "23",
+ "w": "138",
+ "h": "6",
"measuredW": "150",
"measuredH": "100",
- "x": "679",
- "y": "1037",
+ "x": "496",
+ "y": "717",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
- "stroke": "dotted",
"color": "10027263",
"p0": {
- "x": 85.5,
- "y": 27
+ "x": 0,
+ "y": -0.5
},
"p1": {
- "x": 0.5986120996441281,
- "y": 0.12644128113878994
+ "x": 0.46044522302392427,
+ "y": 0.0036766536054163978
},
"p2": {
- "x": 0,
- "y": 0
- }
+ "x": 138,
+ "y": 5.5
+ },
+ "stroke": "dotted"
}
},
{
- "ID": "14760",
+ "ID": "14775",
"typeID": "Arrow",
- "zOrder": "5",
- "w": "87",
- "h": "28",
+ "zOrder": "24",
+ "w": "113",
+ "h": "115",
"measuredW": "150",
"measuredH": "100",
- "x": "679",
- "y": "1073",
+ "x": "856",
+ "y": "598",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
- "stroke": "dotted",
"color": "10027263",
"p0": {
- "x": 86.5,
- "y": 0
+ "x": 112.5,
+ "y": -0.5
},
"p1": {
- "x": 0.6497109826589595,
- "y": -0.08978805394990365
+ "x": 0.48937720509145993,
+ "y": -0.20691804593983584
},
"p2": {
- "x": 0,
- "y": 28
+ "x": -0.29660178475955945,
+ "y": 114.83149154894579
}
}
},
{
- "ID": "14761",
+ "ID": "14776",
"typeID": "Arrow",
- "zOrder": "6",
+ "zOrder": "25",
"w": "1",
- "h": "352",
+ "h": "76",
"measuredW": "150",
"measuredH": "100",
- "x": "845",
- "y": "716",
+ "x": "1094",
+ "y": "591",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -198,929 +198,482 @@
"color": "10027263",
"p0": {
"x": 0,
- "y": -0.24280136823927023
+ "y": 0
},
"p1": {
- "x": 0.4604452230239245,
- "y": 0.0036766536054163917
+ "x": 0.4604452230239241,
+ "y": 0.0036766536054163913
},
"p2": {
"x": 0,
- "y": 352
- }
+ "y": 76
+ },
+ "stroke": "dotted"
}
},
{
- "ID": "14762",
+ "ID": "14777",
"typeID": "Arrow",
- "zOrder": "7",
- "w": "214",
- "h": "141",
+ "zOrder": "26",
+ "w": "221",
+ "h": "117",
"measuredW": "150",
"measuredH": "100",
- "x": "827",
- "y": "1184",
+ "x": "744",
+ "y": "469",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "10027263",
"p0": {
- "x": 214.5,
+ "x": 0.5,
"y": 0
},
"p1": {
- "x": 0.5712545436900968,
- "y": -0.21227347450676648
+ "x": 0.3557172557172557,
+ "y": -0.2189189189189189
},
"p2": {
- "x": 0.20376246056980563,
- "y": 141.43444344459454
+ "x": 221.5,
+ "y": 117
}
}
},
{
- "ID": "14763",
+ "ID": "14778",
"typeID": "Arrow",
- "zOrder": "8",
- "w": "110",
- "h": "112",
+ "zOrder": "27",
+ "w": "1",
+ "h": "95",
"measuredW": "150",
"measuredH": "100",
- "x": "422",
- "y": "920",
+ "x": "744",
+ "y": "159",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "10027263",
- "stroke": "dotted",
"p0": {
- "x": -0.5,
- "y": 0
+ "x": 0,
+ "y": -0.27685841682816204
},
"p1": {
- "x": 0.49256306145204387,
- "y": -0.1262491321818526
+ "x": 0.46044522302392427,
+ "y": 0.003676653605416392
},
"p2": {
- "x": 109,
- "y": 111.5
- }
+ "x": 0,
+ "y": 94.59824914485046
+ },
+ "stroke": "dotted"
}
},
{
- "ID": "14764",
+ "ID": "14779",
"typeID": "Arrow",
- "zOrder": "9",
- "w": "123",
- "h": "133",
+ "zOrder": "28",
+ "w": "1",
+ "h": "80",
"measuredW": "150",
"measuredH": "100",
- "x": "424",
- "y": "1107",
+ "x": "744",
+ "y": "262",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "10027263",
- "stroke": "dotted",
"p0": {
"x": 0,
- "y": 133
+ "y": 0
},
"p1": {
- "x": 0.4810165153269547,
- "y": 0.11402279237004083
+ "x": 0.46044522302392416,
+ "y": 0.003676653605416392
},
"p2": {
- "x": 123,
- "y": 0
+ "x": 0,
+ "y": 80.06287646587509
}
}
},
{
- "ID": "14765",
+ "ID": "14780",
"typeID": "Arrow",
- "zOrder": "10",
- "w": "106",
- "h": "93",
+ "zOrder": "29",
+ "w": "96",
+ "h": "46",
"measuredW": "150",
"measuredH": "100",
- "x": "425",
- "y": "1102",
+ "x": "871",
+ "y": "416",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
- "color": "10027263",
"stroke": "dotted",
+ "color": "10027263",
"p0": {
- "x": 0,
- "y": 93
+ "x": 95.72077500246428,
+ "y": 0.33535944713611343
},
"p1": {
- "x": 0.40844857933115414,
- "y": 0.13221020870002514
+ "x": 0.5365907376221624,
+ "y": 0.09967779237460443
},
"p2": {
- "x": 106,
- "y": 0
+ "x": 0,
+ "y": 46
}
}
},
{
- "ID": "14766",
+ "ID": "14781",
"typeID": "Arrow",
- "zOrder": "11",
- "w": "105",
- "h": "45",
+ "zOrder": "30",
+ "w": "98",
+ "h": "43",
"measuredW": "150",
"measuredH": "100",
- "x": "419",
- "y": "1104",
+ "x": "867",
+ "y": "475",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
- "color": "10027263",
"stroke": "dotted",
+ "color": "10027263",
"p0": {
- "x": 0,
- "y": 45
+ "x": 98.30225589020824,
+ "y": 43.46873552956811
},
"p1": {
- "x": 0.3839080459770115,
- "y": 0.14022988505747125
+ "x": 0.3374725601408122,
+ "y": -0.11051464136788798
},
"p2": {
- "x": 105,
+ "x": 0,
"y": 0
}
}
},
{
- "ID": "14767",
+ "ID": "14782",
"typeID": "Arrow",
- "zOrder": "12",
- "w": "91",
- "h": "19",
+ "zOrder": "31",
+ "w": "99",
+ "h": "50",
"measuredW": "150",
"measuredH": "100",
- "x": "418",
- "y": "1074",
+ "x": "555",
+ "y": "416",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
- "color": "10027263",
"stroke": "dotted",
+ "color": "10027263",
"p0": {
- "x": 0,
- "y": -0.5
+ "x": 98,
+ "y": 50
},
"p1": {
- "x": 0.4292794822430673,
- "y": -0.0842174251423423
+ "x": 0.598612099644128,
+ "y": 0.12644128113878997
},
"p2": {
- "x": 91,
- "y": 17.5
+ "x": -0.5,
+ "y": 0
}
}
},
{
- "ID": "14768",
+ "ID": "14783",
"typeID": "Arrow",
- "zOrder": "13",
- "w": "105",
- "h": "60",
+ "zOrder": "32",
+ "w": "99",
+ "h": "50",
"measuredW": "150",
"measuredH": "100",
- "x": "423",
- "y": "973",
+ "x": "556",
+ "y": "472",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
- "color": "10027263",
"stroke": "dotted",
+ "color": "10027263",
"p0": {
- "x": -0.5,
+ "x": 98,
"y": 0
},
"p1": {
- "x": 0.39794612911033506,
- "y": -0.1274852183534456
+ "x": 0.6551455674158455,
+ "y": -0.1193632321907845
},
"p2": {
- "x": 104,
- "y": 59.5
+ "x": -0.5,
+ "y": 50
}
}
},
{
- "ID": "14769",
+ "ID": "14784",
"typeID": "Arrow",
- "zOrder": "14",
- "w": "94",
- "h": "24",
+ "zOrder": "33",
+ "w": "115",
+ "h": "3",
"measuredW": "150",
"measuredH": "100",
- "x": "420",
- "y": "1016",
+ "x": "544",
+ "y": "467",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
- "color": "10027263",
"stroke": "dotted",
+ "color": "10027263",
"p0": {
- "x": -0.5,
- "y": 0
+ "x": 115,
+ "y": 1
},
"p1": {
- "x": 0.487852196079316,
- "y": -0.041868754088745526
+ "x": 0.5085059730833207,
+ "y": 0.02181309541811583
},
"p2": {
- "x": 93,
- "y": 24
+ "x": 0,
+ "y": 0
}
}
},
{
- "ID": "14770",
+ "ID": "14785",
"typeID": "Arrow",
- "zOrder": "15",
- "w": "1",
- "h": "220",
+ "zOrder": "34",
+ "w": "143",
+ "h": "3",
"measuredW": "150",
"measuredH": "100",
- "x": "663",
- "y": "590",
+ "x": "847",
+ "y": "467",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
- "color": "10027263",
"stroke": "dotted",
+ "color": "10027263",
"p0": {
- "x": 0,
+ "x": 143,
"y": 0
},
"p1": {
- "x": 0.46044522302392416,
- "y": 0.0036766536054163913
+ "x": 0.5536354056902003,
+ "y": 0.01338250790305583
},
"p2": {
"x": 0,
- "y": 219.5
+ "y": 2
}
}
},
{
- "ID": "14771",
- "typeID": "Arrow",
- "zOrder": "16",
- "w": "129",
- "h": "131",
- "measuredW": "150",
- "measuredH": "100",
- "x": "507",
- "y": "570",
+ "ID": "14786",
+ "typeID": "Label",
+ "zOrder": "35",
+ "measuredW": "87",
+ "measuredH": "36",
+ "x": "701",
+ "y": "348",
"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
- }
+ "text": "Python",
+ "size": "28"
}
},
{
- "ID": "14772",
+ "ID": "14787",
"typeID": "Arrow",
- "zOrder": "17",
- "w": "128",
- "h": "91",
+ "zOrder": "36",
+ "w": "1",
+ "h": "55",
"measuredW": "150",
"measuredH": "100",
- "x": "507",
- "y": "617",
+ "x": "744",
+ "y": "400",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "10027263",
- "stroke": "dotted",
"p0": {
"x": 0,
- "y": 0
+ "y": -0.24280136823927023
},
"p1": {
- "x": 0.461318195518942,
- "y": -0.10434039987944228
+ "x": 0.4604452230239243,
+ "y": 0.003676653605416392
},
"p2": {
- "x": 128,
- "y": 90.5
+ "x": 0,
+ "y": 55
}
}
},
{
- "ID": "14773",
- "typeID": "Arrow",
- "zOrder": "18",
- "w": "134",
- "h": "50",
- "measuredW": "150",
- "measuredH": "100",
- "x": "505",
- "y": "664",
+ "ID": "14788",
+ "typeID": "__group__",
+ "zOrder": "37",
+ "measuredW": "262",
+ "measuredH": "43",
+ "w": "262",
+ "h": "43",
+ "x": "624",
+ "y": "447",
"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
+ "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": "14774",
- "typeID": "Arrow",
- "zOrder": "19",
- "w": "138",
- "h": "6",
- "measuredW": "150",
- "measuredH": "100",
- "x": "496",
- "y": "717",
+ "ID": "14789",
+ "typeID": "__group__",
+ "zOrder": "38",
+ "measuredW": "222",
+ "measuredH": "42",
+ "w": "222",
+ "h": "42",
+ "x": "339",
+ "y": "402",
"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"
+ "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": "14775",
- "typeID": "Arrow",
- "zOrder": "20",
- "w": "122",
- "h": "114",
- "measuredW": "150",
- "measuredH": "100",
- "x": "846",
- "y": "598",
+ "ID": "14790",
+ "typeID": "__group__",
+ "zOrder": "39",
+ "measuredW": "222",
+ "measuredH": "42",
+ "w": "222",
+ "h": "42",
+ "x": "339",
+ "y": "448",
"properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 122.5,
- "y": -0.5
- },
- "p1": {
- "x": 0.5299139167862267,
- "y": -0.2574605451936872
- },
- "p2": {
- "x": 0.5,
- "y": 113.5
+ "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",
+ "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": "14776",
- "typeID": "Arrow",
- "zOrder": "21",
- "w": "1",
- "h": "76",
- "measuredW": "150",
- "measuredH": "100",
- "x": "1094",
- "y": "591",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0,
- "y": 0
- },
- "p1": {
- "x": 0.4604452230239241,
- "y": 0.0036766536054163913
- },
- "p2": {
- "x": 0,
- "y": 76
- },
- "stroke": "dotted"
- }
- },
- {
- "ID": "14777",
- "typeID": "Arrow",
- "zOrder": "22",
- "w": "221",
- "h": "117",
- "measuredW": "150",
- "measuredH": "100",
- "x": "744",
- "y": "469",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0.5,
- "y": 0
- },
- "p1": {
- "x": 0.3557172557172557,
- "y": -0.2189189189189189
- },
- "p2": {
- "x": 221.5,
- "y": 117
- }
- }
- },
- {
- "ID": "14778",
- "typeID": "Arrow",
- "zOrder": "23",
- "w": "1",
- "h": "95",
- "measuredW": "150",
- "measuredH": "100",
- "x": "744",
- "y": "159",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0,
- "y": -0.27685841682816204
- },
- "p1": {
- "x": 0.46044522302392427,
- "y": 0.003676653605416392
- },
- "p2": {
- "x": 0,
- "y": 94.59824914485046
- },
- "stroke": "dotted"
- }
- },
- {
- "ID": "14779",
- "typeID": "Arrow",
- "zOrder": "24",
- "w": "1",
- "h": "80",
- "measuredW": "150",
- "measuredH": "100",
- "x": "744",
- "y": "262",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0,
- "y": 0
- },
- "p1": {
- "x": 0.46044522302392416,
- "y": 0.003676653605416392
- },
- "p2": {
- "x": 0,
- "y": 80.06287646587509
- }
- }
- },
- {
- "ID": "14780",
- "typeID": "Arrow",
- "zOrder": "25",
- "w": "120",
- "h": "45",
- "measuredW": "150",
- "measuredH": "100",
- "x": "871",
- "y": "417",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "stroke": "dotted",
- "color": "10027263",
- "p0": {
- "x": 120,
- "y": 0
- },
- "p1": {
- "x": 0.5537800308573948,
- "y": 0.04485342737491732
- },
- "p2": {
- "x": 0,
- "y": 45
- }
- }
- },
- {
- "ID": "14781",
- "typeID": "Arrow",
- "zOrder": "26",
- "w": "120",
- "h": "44",
- "measuredW": "150",
- "measuredH": "100",
- "x": "867",
- "y": "475",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "stroke": "dotted",
- "color": "10027263",
- "p0": {
- "x": 120,
- "y": 44
- },
- "p1": {
- "x": 0.5846756207563067,
- "y": -0.036972790801407494
- },
- "p2": {
- "x": 0,
- "y": 0
- }
- }
- },
- {
- "ID": "14782",
- "typeID": "Arrow",
- "zOrder": "27",
- "w": "99",
- "h": "50",
- "measuredW": "150",
- "measuredH": "100",
- "x": "555",
- "y": "416",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "stroke": "dotted",
- "color": "10027263",
- "p0": {
- "x": 98,
- "y": 50
- },
- "p1": {
- "x": 0.598612099644128,
- "y": 0.12644128113878997
- },
- "p2": {
- "x": -0.5,
- "y": 0
- }
- }
- },
- {
- "ID": "14783",
- "typeID": "Arrow",
- "zOrder": "28",
- "w": "99",
- "h": "50",
- "measuredW": "150",
- "measuredH": "100",
- "x": "556",
- "y": "472",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "stroke": "dotted",
- "color": "10027263",
- "p0": {
- "x": 98,
- "y": 0
- },
- "p1": {
- "x": 0.6551455674158455,
- "y": -0.1193632321907845
- },
- "p2": {
- "x": -0.5,
- "y": 50
- }
- }
- },
- {
- "ID": "14784",
- "typeID": "Arrow",
- "zOrder": "29",
- "w": "115",
- "h": "3",
- "measuredW": "150",
- "measuredH": "100",
- "x": "544",
- "y": "467",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "stroke": "dotted",
- "color": "10027263",
- "p0": {
- "x": 115,
- "y": 1
- },
- "p1": {
- "x": 0.5085059730833207,
- "y": 0.02181309541811583
- },
- "p2": {
- "x": 0,
- "y": 0
- }
- }
- },
- {
- "ID": "14785",
- "typeID": "Arrow",
- "zOrder": "30",
- "w": "143",
- "h": "3",
- "measuredW": "150",
- "measuredH": "100",
- "x": "847",
- "y": "467",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "stroke": "dotted",
- "color": "10027263",
- "p0": {
- "x": 143,
- "y": 0
- },
- "p1": {
- "x": 0.5536354056902003,
- "y": 0.01338250790305583
- },
- "p2": {
- "x": 0,
- "y": 2
- }
- }
- },
- {
- "ID": "14786",
- "typeID": "Label",
- "zOrder": "31",
- "measuredW": "87",
- "measuredH": "36",
- "x": "701",
- "y": "348",
- "properties": {
- "text": "Python",
- "size": "28"
- }
- },
- {
- "ID": "14787",
- "typeID": "Arrow",
- "zOrder": "32",
- "w": "1",
- "h": "55",
- "measuredW": "150",
- "measuredH": "100",
- "x": "744",
- "y": "400",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0,
- "y": -0.24280136823927023
- },
- "p1": {
- "x": 0.4604452230239243,
- "y": 0.003676653605416392
- },
- "p2": {
- "x": 0,
- "y": 55
- }
- }
- },
- {
- "ID": "14788",
- "typeID": "__group__",
- "zOrder": "33",
- "measuredW": "262",
- "measuredH": "43",
- "w": "262",
- "h": "43",
- "x": "624",
- "y": "447",
- "properties": {
- "controlName": "100-python-basics"
- },
- "children": {
- "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": "14789",
- "typeID": "__group__",
- "zOrder": "34",
- "measuredW": "222",
- "measuredH": "42",
- "w": "222",
- "h": "42",
- "x": "339",
- "y": "402",
- "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",
- "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": "14790",
- "typeID": "__group__",
- "zOrder": "35",
- "measuredW": "222",
- "measuredH": "42",
- "w": "222",
- "h": "42",
- "x": "339",
- "y": "448",
- "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",
- "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": "14791",
- "typeID": "__group__",
- "zOrder": "36",
- "measuredW": "256",
- "measuredH": "42",
- "w": "256",
- "h": "42",
- "x": "958",
- "y": "494",
+ "ID": "14791",
+ "typeID": "__group__",
+ "zOrder": "40",
+ "measuredW": "256",
+ "measuredH": "42",
+ "w": "256",
+ "h": "42",
+ "x": "958",
+ "y": "494",
"properties": {
"controlName": "105-python-basics:lists-tuples-sets-dictionaries"
},
@@ -1161,7 +714,7 @@
{
"ID": "14792",
"typeID": "__group__",
- "zOrder": "37",
+ "zOrder": "41",
"measuredW": "222",
"measuredH": "42",
"w": "222",
@@ -1209,7 +762,7 @@
{
"ID": "14793",
"typeID": "__group__",
- "zOrder": "38",
+ "zOrder": "42",
"measuredW": "254",
"measuredH": "42",
"w": "254",
@@ -1256,7 +809,7 @@
{
"ID": "14794",
"typeID": "__group__",
- "zOrder": "39",
+ "zOrder": "43",
"measuredW": "256",
"measuredH": "42",
"w": "256",
@@ -1304,7 +857,7 @@
{
"ID": "14795",
"typeID": "__group__",
- "zOrder": "40",
+ "zOrder": "44",
"measuredW": "262",
"measuredH": "43",
"w": "262",
@@ -1351,7 +904,7 @@
{
"ID": "14796",
"typeID": "__group__",
- "zOrder": "41",
+ "zOrder": "45",
"measuredW": "222",
"measuredH": "42",
"w": "222",
@@ -1398,13 +951,13 @@
{
"ID": "14797",
"typeID": "__group__",
- "zOrder": "42",
+ "zOrder": "46",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
"x": "994",
- "y": "692",
+ "y": "691",
"properties": {
"controlName": "101-data-structures-and-algorithms:heaps-stacks-queues"
},
@@ -1445,13 +998,13 @@
{
"ID": "14798",
"typeID": "__group__",
- "zOrder": "43",
+ "zOrder": "47",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
"x": "995",
- "y": "739",
+ "y": "737",
"properties": {
"controlName": "102-data-structures-and-algorithms:hash-tables"
},
@@ -1492,13 +1045,13 @@
{
"ID": "14799",
"typeID": "__group__",
- "zOrder": "44",
+ "zOrder": "48",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
"x": "994",
- "y": "785",
+ "y": "782",
"properties": {
"controlName": "103-data-structures-and-algorithms:binary-search-trees"
},
@@ -1539,13 +1092,13 @@
{
"ID": "14800",
"typeID": "__group__",
- "zOrder": "45",
+ "zOrder": "49",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
"x": "994",
- "y": "832",
+ "y": "828",
"properties": {
"controlName": "104-data-structures-and-algorithms:recursion"
},
@@ -1586,13 +1139,13 @@
{
"ID": "14801",
"typeID": "__group__",
- "zOrder": "46",
+ "zOrder": "50",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
"x": "994",
- "y": "879",
+ "y": "874",
"properties": {
"controlName": "105-data-structures-and-algorithms:sorting-algorithms"
},
@@ -1633,7 +1186,7 @@
{
"ID": "14802",
"typeID": "__group__",
- "zOrder": "47",
+ "zOrder": "51",
"measuredW": "311",
"measuredH": "43",
"w": "311",
@@ -1680,7 +1233,7 @@
{
"ID": "14803",
"typeID": "__group__",
- "zOrder": "48",
+ "zOrder": "52",
"measuredW": "115",
"measuredH": "142",
"w": "115",
@@ -1697,24 +1250,259 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "115",
- "h": "142",
+ "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": "14804",
+ "typeID": "__group__",
+ "zOrder": "53",
+ "measuredW": "90",
+ "measuredH": "42",
+ "w": "90",
+ "h": "42",
+ "x": "593",
+ "y": "825",
+ "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": "14805",
+ "typeID": "__group__",
+ "zOrder": "54",
+ "measuredW": "91",
+ "measuredH": "42",
+ "w": "91",
+ "h": "42",
+ "x": "592",
+ "y": "871",
+ "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": "14806",
+ "typeID": "__group__",
+ "zOrder": "55",
+ "measuredW": "119",
+ "measuredH": "42",
+ "w": "119",
+ "h": "42",
+ "x": "576",
+ "y": "583",
+ "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": "14807",
+ "typeID": "__group__",
+ "zOrder": "56",
+ "measuredW": "232",
+ "measuredH": "43",
+ "w": "232",
+ "h": "43",
+ "x": "761",
+ "y": "1110",
+ "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": "14816",
+ "typeID": "__group__",
+ "zOrder": "57",
+ "measuredW": "183",
+ "measuredH": "43",
+ "w": "183",
+ "h": "43",
+ "x": "732",
+ "y": "1447",
+ "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"
+ "y": "0",
+ "properties": {
+ "color": "16776960"
+ }
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "62",
+ "measuredW": "128",
"measuredH": "24",
- "x": "27",
- "y": "11",
+ "x": "28",
+ "y": "10",
"properties": {
"size": "16",
- "text": "Modules"
+ "text": "Testing your Apps"
}
}
]
@@ -1722,17 +1510,17 @@
}
},
{
- "ID": "14804",
+ "ID": "14817",
"typeID": "__group__",
- "zOrder": "49",
- "measuredW": "90",
+ "zOrder": "94",
+ "measuredW": "154",
"measuredH": "42",
- "w": "90",
+ "w": "154",
"h": "42",
- "x": "592",
- "y": "825",
+ "x": "473",
+ "y": "1459",
"properties": {
- "controlName": "100-python-advanced-topics:modules:builtin-modules"
+ "controlName": "100-python-testing:unittest-pyunit"
},
"children": {
"controls": {
@@ -1741,7 +1529,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "90",
+ "w": "154",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -1755,13 +1543,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "45",
+ "measuredW": "116",
"measuredH": "24",
- "x": "22",
+ "x": "19",
"y": "9",
"properties": {
"size": "16",
- "text": "Builtin"
+ "text": "unittest / pyUnit"
}
}
]
@@ -1769,17 +1557,17 @@
}
},
{
- "ID": "14805",
+ "ID": "14818",
"typeID": "__group__",
- "zOrder": "50",
- "measuredW": "91",
+ "zOrder": "95",
+ "measuredW": "154",
"measuredH": "42",
- "w": "91",
+ "w": "154",
"h": "42",
- "x": "592",
- "y": "871",
+ "x": "473",
+ "y": "1412",
"properties": {
- "controlName": "101-python-advanced-topics:modules:custom-modules"
+ "controlName": "101-python-testing:pytest"
},
"children": {
"controls": {
@@ -1788,7 +1576,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "91",
+ "w": "154",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -1802,13 +1590,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "56",
+ "measuredW": "44",
"measuredH": "24",
- "x": "18",
+ "x": "55",
"y": "9",
"properties": {
"size": "16",
- "text": "Custom"
+ "text": "pytest"
}
}
]
@@ -1816,17 +1604,17 @@
}
},
{
- "ID": "14806",
+ "ID": "14819",
"typeID": "__group__",
- "zOrder": "51",
- "measuredW": "119",
+ "zOrder": "96",
+ "measuredW": "154",
"measuredH": "42",
- "w": "119",
+ "w": "154",
"h": "42",
- "x": "581",
- "y": "583",
+ "x": "473",
+ "y": "1320",
"properties": {
- "controlName": "104-python-advanced-topics:iterators"
+ "controlName": "102-python-testing:doctest"
},
"children": {
"controls": {
@@ -1835,7 +1623,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "119",
+ "w": "154",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -1849,13 +1637,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "62",
+ "measuredW": "54",
"measuredH": "24",
- "x": "29",
+ "x": "50",
"y": "9",
"properties": {
"size": "16",
- "text": "Iterators"
+ "text": "doctest"
}
}
]
@@ -1863,17 +1651,17 @@
}
},
{
- "ID": "14807",
+ "ID": "14820",
"typeID": "__group__",
- "zOrder": "52",
- "measuredW": "206",
- "measuredH": "43",
- "w": "206",
- "h": "43",
- "x": "745",
- "y": "1047",
+ "zOrder": "97",
+ "measuredW": "154",
+ "measuredH": "42",
+ "w": "154",
+ "h": "42",
+ "x": "473",
+ "y": "1366",
"properties": {
- "controlName": "106-python-frameworks"
+ "controlName": "102-python-testing:nose"
},
"children": {
"controls": {
@@ -1882,27 +1670,27 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "206",
- "h": "43",
+ "w": "154",
+ "h": "42",
"measuredW": "100",
"measuredH": "70",
"x": "0",
"y": "0",
"properties": {
- "color": "16776960"
+ "color": "16770457"
}
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "140",
+ "measuredW": "36",
"measuredH": "24",
- "x": "33",
- "y": "10",
+ "x": "59",
+ "y": "9",
"properties": {
"size": "16",
- "text": "Learn a Framework"
+ "text": "nose"
}
}
]
@@ -1910,17 +1698,54 @@
}
},
{
- "ID": "14808",
+ "ID": "14821",
+ "typeID": "Canvas",
+ "zOrder": "58",
+ "w": "350",
+ "h": "141",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "1028",
+ "y": "133"
+ },
+ {
+ "ID": "14822",
+ "typeID": "Label",
+ "zOrder": "59",
+ "measuredW": "314",
+ "measuredH": "25",
+ "x": "1042",
+ "y": "150",
+ "properties": {
+ "size": "17",
+ "text": "Find the detailed version of this roadmap"
+ }
+ },
+ {
+ "ID": "14823",
+ "typeID": "Label",
+ "zOrder": "60",
+ "measuredW": "319",
+ "measuredH": "25",
+ "x": "1042",
+ "y": "178",
+ "properties": {
+ "size": "17",
+ "text": "along with resources and other roadmaps"
+ }
+ },
+ {
+ "ID": "14824",
"typeID": "__group__",
- "zOrder": "53",
- "measuredW": "187",
- "measuredH": "43",
- "w": "187",
- "h": "43",
- "x": "498",
- "y": "1019",
+ "zOrder": "61",
+ "measuredW": "320",
+ "measuredH": "45",
+ "w": "320",
+ "h": "45",
+ "x": "1043",
+ "y": "214",
"properties": {
- "controlName": "100-python-frameworks:synchronous"
+ "controlName": "ext_link:roadmap.sh"
},
"children": {
"controls": {
@@ -1929,27 +1754,85 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "187",
- "h": "43",
+ "w": "320",
+ "h": "45",
"measuredW": "100",
"measuredH": "70",
"x": "0",
"y": "0",
"properties": {
- "color": "16770457"
+ "borderColor": "4273622",
+ "color": "4273622"
}
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "93",
- "measuredH": "24",
- "x": "47",
- "y": "10",
+ "measuredW": "105",
+ "measuredH": "28",
+ "x": "141",
+ "y": "8",
"properties": {
- "size": "16",
- "text": "Synchronous"
+ "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": "/"
}
}
]
@@ -1957,46 +1840,48 @@
}
},
{
- "ID": "14809",
+ "ID": "14825",
"typeID": "__group__",
- "zOrder": "54",
- "measuredW": "87",
- "measuredH": "42",
- "w": "87",
- "h": "42",
- "x": "339",
- "y": "905",
+ "zOrder": "62",
+ "measuredW": "374",
+ "measuredH": "50",
+ "w": "374",
+ "h": "50",
+ "x": "598",
+ "y": "229",
"properties": {
- "controlName": "100-python-frameworks:synchronous:django"
+ "controlName": "ext_link:roadmap.sh/backend"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
- "typeID": "Canvas",
+ "typeID": "TextArea",
"zOrder": "0",
- "w": "87",
- "h": "42",
- "measuredW": "100",
- "measuredH": "70",
+ "w": "374",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
"x": "0",
"y": "0",
"properties": {
- "color": "16770457"
+ "color": "4273622",
+ "borderColor": "4273622"
}
},
{
"ID": "1",
"typeID": "Label",
- "zOrder": "1",
- "measuredW": "52",
- "measuredH": "24",
- "x": "18",
- "y": "9",
+ "zOrder": "1",
+ "measuredW": "320",
+ "measuredH": "25",
+ "x": "27",
+ "y": "12",
"properties": {
- "size": "16",
- "text": "Django"
+ "size": "17",
+ "text": "Backend roadmap till Language Selection",
+ "color": "16777215"
}
}
]
@@ -2004,17 +1889,47 @@
}
},
{
- "ID": "14810",
+ "ID": "14826",
+ "typeID": "Arrow",
+ "zOrder": "63",
+ "w": "1",
+ "h": "77",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "424",
+ "y": "716",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "stroke": "dotted",
+ "color": "10027263",
+ "p0": {
+ "x": 0,
+ "y": 76.5
+ },
+ "p1": {
+ "x": 0.5494505494505496,
+ "y": 0
+ },
+ "p2": {
+ "x": 0,
+ "y": -0.5
+ }
+ }
+ },
+ {
+ "ID": "14827",
"typeID": "__group__",
- "zOrder": "55",
- "measuredW": "88",
- "measuredH": "42",
- "w": "88",
- "h": "42",
- "x": "339",
- "y": "951",
+ "zOrder": "64",
+ "measuredW": "131",
+ "measuredH": "184",
+ "w": "131",
+ "h": "184",
+ "x": "383",
+ "y": "699",
"properties": {
- "controlName": "101-python-frameworks:synchronous:flask"
+ "controlName": "100-python-advanced-topics:oop"
},
"children": {
"controls": {
@@ -2023,27 +1938,24 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "88",
- "h": "42",
+ "w": "131",
+ "h": "184",
"measuredW": "100",
"measuredH": "70",
"x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
+ "y": "0"
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "38",
+ "measuredW": "35",
"measuredH": "24",
- "x": "25",
+ "x": "48",
"y": "9",
"properties": {
- "size": "16",
- "text": "Flask"
+ "text": "OOP",
+ "size": "16"
}
}
]
@@ -2051,17 +1963,17 @@
}
},
{
- "ID": "14811",
+ "ID": "14828",
"typeID": "__group__",
- "zOrder": "56",
- "measuredW": "88",
+ "zOrder": "65",
+ "measuredW": "169",
"measuredH": "42",
- "w": "88",
+ "w": "169",
"h": "42",
- "x": "339",
- "y": "997",
+ "x": "330",
+ "y": "737",
"properties": {
- "controlName": "102-python-frameworks:synchronous:pyramid"
+ "controlName": "102-python-advanced-topics:oop:classes"
},
"children": {
"controls": {
@@ -2070,7 +1982,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "88",
+ "w": "169",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2084,13 +1996,14 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
+ "w": "60",
"measuredW": "58",
"measuredH": "24",
- "x": "15",
+ "x": "55",
"y": "9",
"properties": {
"size": "16",
- "text": "Pyramid"
+ "text": "Classes"
}
}
]
@@ -2098,17 +2011,17 @@
}
},
{
- "ID": "14812",
+ "ID": "14829",
"typeID": "__group__",
- "zOrder": "57",
- "measuredW": "91",
+ "zOrder": "66",
+ "measuredW": "169",
"measuredH": "42",
- "w": "91",
+ "w": "169",
"h": "42",
- "x": "338",
- "y": "1113",
+ "x": "330",
+ "y": "783",
"properties": {
- "controlName": "100-python-frameworks:asynchronous:gevent"
+ "controlName": "101-python-advanced-topics:oop:inheritance"
},
"children": {
"controls": {
@@ -2117,7 +2030,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "91",
+ "w": "169",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2131,13 +2044,14 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "50",
+ "w": "86",
+ "measuredW": "83",
"measuredH": "24",
- "x": "21",
+ "x": "42",
"y": "9",
"properties": {
"size": "16",
- "text": "gevent"
+ "text": "Inheritance"
}
}
]
@@ -2145,17 +2059,17 @@
}
},
{
- "ID": "14813",
+ "ID": "14830",
"typeID": "__group__",
- "zOrder": "58",
- "measuredW": "89",
+ "zOrder": "67",
+ "measuredW": "169",
"measuredH": "42",
- "w": "89",
+ "w": "169",
"h": "42",
- "x": "339",
- "y": "1159",
+ "x": "330",
+ "y": "829",
"properties": {
- "controlName": "101-python-frameworks:asynchronous:aiohttp"
+ "controlName": "100-python-advanced-topics:oop:methods-dunder"
},
"children": {
"controls": {
@@ -2164,7 +2078,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "89",
+ "w": "169",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2178,13 +2092,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "50",
+ "measuredW": "125",
"measuredH": "24",
"x": "20",
"y": "9",
"properties": {
- "size": "16",
- "text": "aiohttp"
+ "text": "Methods, Dunder",
+ "size": "16"
}
}
]
@@ -2192,17 +2106,17 @@
}
},
{
- "ID": "14814",
+ "ID": "14831",
"typeID": "__group__",
- "zOrder": "59",
- "measuredW": "91",
+ "zOrder": "68",
+ "measuredW": "172",
"measuredH": "42",
- "w": "91",
+ "w": "172",
"h": "42",
- "x": "338",
- "y": "1205",
+ "x": "340",
+ "y": "601",
"properties": {
- "controlName": "102-python-frameworks:asynchronous:tornado"
+ "controlName": "102-python-advanced-topics:decorators"
},
"children": {
"controls": {
@@ -2211,7 +2125,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "91",
+ "w": "172",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2225,13 +2139,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "60",
+ "measuredW": "81",
"measuredH": "24",
- "x": "16",
+ "x": "45",
"y": "9",
"properties": {
"size": "16",
- "text": "Tornado"
+ "text": "Decorators"
}
}
]
@@ -2239,17 +2153,17 @@
}
},
{
- "ID": "14815",
+ "ID": "14832",
"typeID": "__group__",
- "zOrder": "60",
- "measuredW": "91",
+ "zOrder": "69",
+ "measuredW": "171",
"measuredH": "42",
- "w": "91",
+ "w": "171",
"h": "42",
- "x": "338",
- "y": "1251",
+ "x": "341",
+ "y": "555",
"properties": {
- "controlName": "103-python-frameworks:asynchronous:sanic"
+ "controlName": "101-python-advanced-topics:regular-expressions"
},
"children": {
"controls": {
@@ -2258,7 +2172,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "91",
+ "w": "171",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2272,13 +2186,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "41",
+ "measuredW": "49",
"measuredH": "24",
- "x": "25",
+ "x": "61",
"y": "9",
"properties": {
"size": "16",
- "text": "Sanic"
+ "text": "RegEx"
}
}
]
@@ -2286,17 +2200,17 @@
}
},
{
- "ID": "14816",
+ "ID": "14833",
"typeID": "__group__",
- "zOrder": "61",
- "measuredW": "183",
- "measuredH": "43",
- "w": "183",
- "h": "43",
- "x": "1034",
- "y": "1155",
+ "zOrder": "70",
+ "measuredW": "174",
+ "measuredH": "42",
+ "w": "174",
+ "h": "42",
+ "x": "339",
+ "y": "647",
"properties": {
- "controlName": "108-python-testing"
+ "controlName": "103-python-advanced-topics:lambdas"
},
"children": {
"controls": {
@@ -2305,27 +2219,27 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "183",
- "h": "43",
+ "w": "174",
+ "h": "42",
"measuredW": "100",
"measuredH": "70",
"x": "0",
"y": "0",
"properties": {
- "color": "16776960"
+ "color": "16770457"
}
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "128",
+ "measuredW": "67",
"measuredH": "24",
- "x": "28",
- "y": "10",
+ "x": "53",
+ "y": "9",
"properties": {
- "size": "16",
- "text": "Testing your Apps"
+ "text": "Lambdas",
+ "size": "16"
}
}
]
@@ -2333,17 +2247,17 @@
}
},
{
- "ID": "14817",
+ "ID": "14839",
"typeID": "__group__",
- "zOrder": "62",
- "measuredW": "154",
- "measuredH": "42",
- "w": "154",
- "h": "42",
- "x": "1060",
- "y": "1080",
+ "zOrder": "71",
+ "measuredW": "173",
+ "measuredH": "193",
+ "w": "173",
+ "h": "193",
+ "x": "339",
+ "y": "899",
"properties": {
- "controlName": "100-python-testing:unittest-pyunit"
+ "controlName": "105-python-package-managers"
},
"children": {
"controls": {
@@ -2352,27 +2266,24 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "154",
- "h": "42",
+ "w": "173",
+ "h": "193",
"measuredW": "100",
"measuredH": "70",
"x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
+ "y": "0"
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "116",
+ "measuredW": "141",
"measuredH": "24",
- "x": "19",
- "y": "9",
+ "x": "16",
+ "y": "13",
"properties": {
"size": "16",
- "text": "unittest / pyUnit"
+ "text": "Package Managers"
}
}
]
@@ -2380,17 +2291,17 @@
}
},
{
- "ID": "14818",
+ "ID": "14840",
"typeID": "__group__",
- "zOrder": "63",
- "measuredW": "154",
+ "zOrder": "72",
+ "measuredW": "148",
"measuredH": "42",
- "w": "154",
+ "w": "148",
"h": "42",
- "x": "1060",
- "y": "1033",
+ "x": "352",
+ "y": "945",
"properties": {
- "controlName": "101-python-testing:pytest"
+ "controlName": "100-python-package-managers:pypi"
},
"children": {
"controls": {
@@ -2399,7 +2310,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "154",
+ "w": "148",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2413,13 +2324,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "44",
+ "measuredW": "33",
"measuredH": "24",
- "x": "55",
+ "x": "57",
"y": "9",
"properties": {
"size": "16",
- "text": "pytest"
+ "text": "PyPI"
}
}
]
@@ -2427,17 +2338,17 @@
}
},
{
- "ID": "14819",
+ "ID": "14841",
"typeID": "__group__",
- "zOrder": "64",
- "measuredW": "154",
+ "zOrder": "73",
+ "measuredW": "146",
"measuredH": "42",
- "w": "154",
+ "w": "146",
"h": "42",
- "x": "1060",
- "y": "941",
+ "x": "353",
+ "y": "991",
"properties": {
- "controlName": "102-python-testing:doctest"
+ "controlName": "101-python-package-managers:pip"
},
"children": {
"controls": {
@@ -2446,7 +2357,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "154",
+ "w": "146",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2460,13 +2371,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "54",
+ "measuredW": "24",
"measuredH": "24",
- "x": "50",
+ "x": "61",
"y": "9",
"properties": {
"size": "16",
- "text": "doctest"
+ "text": "Pip"
}
}
]
@@ -2474,17 +2385,17 @@
}
},
{
- "ID": "14820",
+ "ID": "14842",
"typeID": "__group__",
- "zOrder": "65",
- "measuredW": "154",
+ "zOrder": "74",
+ "measuredW": "146",
"measuredH": "42",
- "w": "154",
+ "w": "146",
"h": "42",
- "x": "1060",
- "y": "987",
+ "x": "353",
+ "y": "1037",
"properties": {
- "controlName": "102-python-testing:nose"
+ "controlName": "102-python-package-managers:conda"
},
"children": {
"controls": {
@@ -2493,7 +2404,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "154",
+ "w": "146",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2507,13 +2418,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "36",
+ "measuredW": "48",
"measuredH": "24",
- "x": "59",
+ "x": "49",
"y": "9",
"properties": {
"size": "16",
- "text": "nose"
+ "text": "Conda"
}
}
]
@@ -2521,141 +2432,185 @@
}
},
{
- "ID": "14821",
- "typeID": "Canvas",
- "zOrder": "66",
- "w": "350",
- "h": "141",
- "measuredW": "100",
- "measuredH": "70",
- "x": "1028",
- "y": "133"
- },
- {
- "ID": "14822",
- "typeID": "Label",
- "zOrder": "67",
- "measuredW": "314",
- "measuredH": "25",
- "x": "1042",
- "y": "150",
- "properties": {
- "size": "17",
- "text": "Find the detailed version of this roadmap"
- }
- },
- {
- "ID": "14823",
- "typeID": "Label",
- "zOrder": "68",
- "measuredW": "319",
- "measuredH": "25",
- "x": "1042",
- "y": "178",
- "properties": {
- "size": "17",
- "text": "along with resources and other roadmaps"
- }
- },
- {
- "ID": "14824",
+ "ID": "14843",
"typeID": "__group__",
- "zOrder": "69",
- "measuredW": "320",
- "measuredH": "45",
- "w": "320",
- "h": "45",
- "x": "1043",
- "y": "214",
+ "zOrder": "75",
+ "measuredW": "352",
+ "measuredH": "54",
+ "w": "352",
+ "h": "54",
+ "x": "1027",
+ "y": "302",
"properties": {
- "controlName": "ext_link:roadmap.sh"
+ "controlName": "100-python-roadmap-note"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
- "typeID": "Canvas",
+ "typeID": "TextArea",
"zOrder": "0",
- "w": "320",
- "h": "45",
- "measuredW": "100",
- "measuredH": "70",
+ "w": "352",
+ "h": "54",
+ "measuredW": "200",
+ "measuredH": "140",
"x": "0",
- "y": "0",
- "properties": {
- "borderColor": "4273622",
- "color": "4273622"
- }
+ "y": "0"
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "105",
- "measuredH": "28",
- "x": "141",
- "y": "8",
+ "measuredW": "224",
+ "measuredH": "26",
+ "x": "50",
+ "y": "14",
"properties": {
- "color": "16777215",
- "size": "20",
- "text": "roadmap.sh"
+ "size": "18",
+ "text": "Important Note / Click here"
}
},
{
"ID": "2",
- "typeID": "Label",
+ "typeID": "__group__",
"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": ":"
+ "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": "14844",
+ "typeID": "Canvas",
+ "zOrder": "76",
+ "w": "328",
+ "h": "200",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "215",
+ "y": "133"
+ },
+ {
+ "ID": "14845",
+ "typeID": "__group__",
+ "zOrder": "77",
+ "measuredW": "189",
+ "measuredH": "27",
+ "w": "189",
+ "h": "27",
+ "x": "243",
+ "y": "210",
+ "properties": {
+ "controlName": "ext_link:roadmap.sh/backend"
+ },
+ "children": {
+ "controls": {
+ "control": [
{
- "ID": "4",
+ "ID": "0",
"typeID": "Label",
- "zOrder": "4",
- "measuredW": "10",
- "measuredH": "28",
- "x": "120",
- "y": "9",
+ "zOrder": "0",
+ "measuredW": "156",
+ "measuredH": "26",
+ "x": "33",
+ "y": "0",
"properties": {
- "color": "16777215",
- "size": "20",
- "text": "/"
+ "size": "18",
+ "text": "Backend Roadmap"
}
},
{
- "ID": "5",
- "typeID": "Label",
- "zOrder": "5",
- "measuredW": "10",
- "measuredH": "28",
- "x": "128",
- "y": "9",
- "properties": {
- "color": "16777215",
- "size": "20",
- "text": "/"
+ "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"
+ }
+ }
+ }
+ ]
+ }
}
}
]
@@ -2663,48 +2618,81 @@
}
},
{
- "ID": "14825",
+ "ID": "14846",
"typeID": "__group__",
- "zOrder": "70",
- "measuredW": "374",
- "measuredH": "50",
- "w": "374",
- "h": "50",
- "x": "598",
- "y": "229",
+ "zOrder": "78",
+ "measuredW": "183",
+ "measuredH": "27",
+ "w": "183",
+ "h": "27",
+ "x": "243",
+ "y": "246",
"properties": {
- "controlName": "ext_link:roadmap.sh/backend"
+ "controlName": "ext_link:roadmap.sh/javascript"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
- "typeID": "TextArea",
+ "typeID": "Label",
"zOrder": "0",
- "w": "374",
- "h": "50",
- "measuredW": "200",
- "measuredH": "140",
- "x": "0",
+ "measuredW": "150",
+ "measuredH": "26",
+ "x": "33",
"y": "0",
"properties": {
- "color": "4273622",
- "borderColor": "4273622"
+ "size": "18",
+ "text": "DevOps Roadmap"
}
},
{
"ID": "1",
- "typeID": "Label",
+ "typeID": "__group__",
"zOrder": "1",
- "measuredW": "320",
- "measuredH": "25",
- "x": "27",
- "y": "12",
- "properties": {
- "size": "17",
- "text": "Backend roadmap till Language Selection",
- "color": "16777215"
+ "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"
+ }
+ }
+ }
+ ]
+ }
}
}
]
@@ -2712,73 +2700,94 @@
}
},
{
- "ID": "14826",
- "typeID": "Arrow",
- "zOrder": "71",
- "w": "1",
- "h": "77",
- "measuredW": "150",
- "measuredH": "100",
- "x": "424",
- "y": "716",
+ "ID": "14848",
+ "typeID": "Label",
+ "zOrder": "79",
+ "measuredW": "209",
+ "measuredH": "32",
+ "x": "243",
+ "y": "162",
"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
- }
+ "size": "24",
+ "text": "Related Roadmaps"
}
},
{
- "ID": "14827",
+ "ID": "14849",
"typeID": "__group__",
- "zOrder": "72",
- "measuredW": "131",
- "measuredH": "184",
- "w": "131",
- "h": "184",
- "x": "383",
- "y": "699",
+ "zOrder": "80",
+ "measuredW": "251",
+ "measuredH": "27",
+ "w": "251",
+ "h": "27",
+ "x": "243",
+ "y": "284",
"properties": {
- "controlName": "100-python-advanced-topics:oop"
+ "controlName": "ext_link:roadmap.sh/software-design-architecture"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
- "typeID": "Canvas",
+ "typeID": "Label",
"zOrder": "0",
- "w": "131",
- "h": "184",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0"
+ "measuredW": "218",
+ "measuredH": "26",
+ "x": "33",
+ "y": "0",
+ "properties": {
+ "size": "18",
+ "text": "Software Design Roadmap"
+ }
},
{
"ID": "1",
- "typeID": "Label",
+ "typeID": "__group__",
"zOrder": "1",
- "measuredW": "35",
+ "measuredW": "24",
"measuredH": "24",
- "x": "48",
- "y": "9",
- "properties": {
- "text": "OOP",
- "size": "16"
+ "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"
+ }
+ }
+ }
+ ]
+ }
}
}
]
@@ -2786,65 +2795,77 @@
}
},
{
- "ID": "14828",
- "typeID": "__group__",
- "zOrder": "73",
- "measuredW": "169",
- "measuredH": "42",
- "w": "169",
- "h": "42",
- "x": "330",
- "y": "737",
+ "ID": "14851",
+ "typeID": "Arrow",
+ "zOrder": "18",
+ "w": "278",
+ "h": "304",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "494",
+ "y": "719",
+ "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": "14853",
+ "typeID": "Arrow",
+ "zOrder": "16",
+ "w": "294",
+ "h": "468",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "500",
+ "y": "713",
"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"
- }
- }
- ]
+ "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": "14829",
+ "ID": "14854",
"typeID": "__group__",
- "zOrder": "74",
- "measuredW": "169",
+ "zOrder": "81",
+ "measuredW": "193",
"measuredH": "42",
- "w": "169",
+ "w": "193",
"h": "42",
- "x": "330",
- "y": "783",
+ "x": "302",
+ "y": "1130",
"properties": {
- "controlName": "101-python-advanced-topics:oop:inheritance"
+ "controlName": "106-python-advanced-topics:list-comprehensions"
},
"children": {
"controls": {
@@ -2853,7 +2874,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "169",
+ "w": "193",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2867,14 +2888,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "w": "86",
- "measuredW": "83",
+ "measuredW": "154",
"measuredH": "24",
- "x": "42",
+ "x": "20",
"y": "9",
"properties": {
"size": "16",
- "text": "Inheritance"
+ "text": "List Comprehensions"
}
}
]
@@ -2882,17 +2902,17 @@
}
},
{
- "ID": "14830",
+ "ID": "14855",
"typeID": "__group__",
- "zOrder": "75",
- "measuredW": "169",
+ "zOrder": "82",
+ "measuredW": "193",
"measuredH": "42",
- "w": "169",
+ "w": "193",
"h": "42",
- "x": "330",
- "y": "829",
+ "x": "302",
+ "y": "1175",
"properties": {
- "controlName": "100-python-advanced-topics:oop:methods-dunder"
+ "controlName": "107-python-advanced-topics:generator-expressions"
},
"children": {
"controls": {
@@ -2901,7 +2921,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "169",
+ "w": "193",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2915,13 +2935,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "125",
+ "measuredW": "167",
"measuredH": "24",
- "x": "20",
+ "x": "13",
"y": "9",
"properties": {
- "text": "Methods, Dunder",
- "size": "16"
+ "size": "16",
+ "text": "Generator Expressions"
}
}
]
@@ -2929,17 +2949,17 @@
}
},
{
- "ID": "14831",
+ "ID": "14856",
"typeID": "__group__",
- "zOrder": "76",
- "measuredW": "172",
+ "zOrder": "83",
+ "measuredW": "193",
"measuredH": "42",
- "w": "172",
+ "w": "193",
"h": "42",
- "x": "340",
- "y": "601",
+ "x": "302",
+ "y": "1220",
"properties": {
- "controlName": "102-python-advanced-topics:decorators"
+ "controlName": "108-python-advanced-topics:paradigms"
},
"children": {
"controls": {
@@ -2948,7 +2968,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "172",
+ "w": "193",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -2962,13 +2982,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "81",
+ "measuredW": "77",
"measuredH": "24",
- "x": "45",
+ "x": "58",
"y": "9",
"properties": {
"size": "16",
- "text": "Decorators"
+ "text": "Paradigms"
}
}
]
@@ -2976,17 +2996,28 @@
}
},
{
- "ID": "14832",
+ "ID": "14857",
+ "typeID": "Canvas",
+ "zOrder": "17",
+ "w": "131",
+ "h": "166",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "381",
+ "y": "1113"
+ },
+ {
+ "ID": "14859",
"typeID": "__group__",
- "zOrder": "77",
- "measuredW": "171",
- "measuredH": "42",
- "w": "171",
- "h": "42",
- "x": "341",
- "y": "555",
+ "zOrder": "84",
+ "measuredW": "155",
+ "measuredH": "43",
+ "w": "155",
+ "h": "43",
+ "x": "1078",
+ "y": "1036",
"properties": {
- "controlName": "101-python-advanced-topics:regular-expressions"
+ "controlName": "100-python-frameworks:synchronous"
},
"children": {
"controls": {
@@ -2995,8 +3026,8 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "171",
- "h": "42",
+ "w": "155",
+ "h": "43",
"measuredW": "100",
"measuredH": "70",
"x": "0",
@@ -3009,13 +3040,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "49",
+ "measuredW": "93",
"measuredH": "24",
- "x": "61",
- "y": "9",
+ "x": "31",
+ "y": "10",
"properties": {
"size": "16",
- "text": "RegEx"
+ "text": "Synchronous"
}
}
]
@@ -3023,17 +3054,17 @@
}
},
{
- "ID": "14833",
+ "ID": "14860",
"typeID": "__group__",
- "zOrder": "78",
- "measuredW": "174",
+ "zOrder": "85",
+ "measuredW": "87",
"measuredH": "42",
- "w": "174",
+ "w": "87",
"h": "42",
- "x": "339",
- "y": "647",
+ "x": "930",
+ "y": "945",
"properties": {
- "controlName": "103-python-advanced-topics:lambdas"
+ "controlName": "100-python-frameworks:synchronous:django"
},
"children": {
"controls": {
@@ -3042,7 +3073,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "174",
+ "w": "87",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -3056,13 +3087,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "67",
+ "measuredW": "52",
"measuredH": "24",
- "x": "53",
+ "x": "18",
"y": "9",
"properties": {
- "text": "Lambdas",
- "size": "16"
+ "size": "16",
+ "text": "Django"
}
}
]
@@ -3070,17 +3101,17 @@
}
},
{
- "ID": "14834",
+ "ID": "14861",
"typeID": "__group__",
- "zOrder": "79",
- "measuredW": "187",
- "measuredH": "43",
- "w": "187",
- "h": "43",
- "x": "498",
- "y": "1074",
+ "zOrder": "86",
+ "measuredW": "88",
+ "measuredH": "42",
+ "w": "88",
+ "h": "42",
+ "x": "930",
+ "y": "991",
"properties": {
- "controlName": "101-python-frameworks:asynchronous"
+ "controlName": "101-python-frameworks:synchronous:flask"
},
"children": {
"controls": {
@@ -3089,8 +3120,8 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "187",
- "h": "43",
+ "w": "88",
+ "h": "42",
"measuredW": "100",
"measuredH": "70",
"x": "0",
@@ -3103,13 +3134,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "101",
+ "measuredW": "38",
"measuredH": "24",
- "x": "43",
- "y": "10",
+ "x": "25",
+ "y": "9",
"properties": {
"size": "16",
- "text": "Asynchronous"
+ "text": "Flask"
}
}
]
@@ -3117,17 +3148,17 @@
}
},
{
- "ID": "14835",
+ "ID": "14862",
"typeID": "__group__",
- "zOrder": "80",
- "measuredW": "89",
+ "zOrder": "87",
+ "measuredW": "88",
"measuredH": "42",
- "w": "89",
+ "w": "88",
"h": "42",
- "x": "339",
- "y": "1053",
+ "x": "930",
+ "y": "1037",
"properties": {
- "controlName": "102-python-frameworks:fastapi"
+ "controlName": "102-python-frameworks:synchronous:pyramid"
},
"children": {
"controls": {
@@ -3136,7 +3167,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "89",
+ "w": "88",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -3150,92 +3181,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "56",
+ "measuredW": "58",
"measuredH": "24",
- "x": "17",
+ "x": "15",
"y": "9",
"properties": {
- "size": "16",
- "text": "FastAPI"
- }
- }
- ]
- }
- }
- },
- {
- "ID": "14836",
- "typeID": "Arrow",
- "zOrder": "81",
- "w": "1",
- "h": "98",
- "measuredW": "150",
- "measuredH": "100",
- "x": "829",
- "y": "1324",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": -0.5,
- "y": -0.5
- },
- "p1": {
- "x": 0.5259259259259262,
- "y": 0
- },
- "p2": {
- "x": -0.5,
- "y": 97
- },
- "stroke": "dotted"
- }
- },
- {
- "ID": "14837",
- "typeID": "__group__",
- "zOrder": "82",
- "measuredW": "374",
- "measuredH": "50",
- "w": "374",
- "h": "50",
- "x": "622",
- "y": "1293",
- "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": "340",
- "measuredH": "25",
- "x": "17",
- "y": "12",
- "properties": {
- "size": "17",
- "color": "16777215",
- "text": "Backend roadmap after Language Selection"
+ "size": "16",
+ "text": "Pyramid"
}
}
]
@@ -3243,17 +3195,17 @@
}
},
{
- "ID": "14839",
+ "ID": "14863",
"typeID": "__group__",
- "zOrder": "83",
- "measuredW": "173",
- "measuredH": "193",
- "w": "173",
- "h": "193",
- "x": "759",
- "y": "796",
+ "zOrder": "88",
+ "measuredW": "156",
+ "measuredH": "43",
+ "w": "156",
+ "h": "43",
+ "x": "1075",
+ "y": "1191",
"properties": {
- "controlName": "105-python-package-managers"
+ "controlName": "101-python-frameworks:asynchronous"
},
"children": {
"controls": {
@@ -3262,24 +3214,27 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "173",
- "h": "193",
+ "w": "156",
+ "h": "43",
"measuredW": "100",
"measuredH": "70",
"x": "0",
- "y": "0"
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "141",
+ "measuredW": "101",
"measuredH": "24",
- "x": "16",
- "y": "13",
+ "x": "27",
+ "y": "10",
"properties": {
"size": "16",
- "text": "Package Managers"
+ "text": "Asynchronous"
}
}
]
@@ -3287,17 +3242,17 @@
}
},
{
- "ID": "14840",
+ "ID": "14864",
"typeID": "__group__",
- "zOrder": "84",
- "measuredW": "148",
+ "zOrder": "89",
+ "measuredW": "91",
"measuredH": "42",
- "w": "148",
+ "w": "91",
"h": "42",
- "x": "772",
- "y": "842",
+ "x": "936",
+ "y": "1191",
"properties": {
- "controlName": "100-python-package-managers:pypi"
+ "controlName": "100-python-frameworks:asynchronous:gevent"
},
"children": {
"controls": {
@@ -3306,7 +3261,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "148",
+ "w": "91",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -3320,13 +3275,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "33",
+ "measuredW": "50",
"measuredH": "24",
- "x": "57",
+ "x": "21",
"y": "9",
"properties": {
"size": "16",
- "text": "PyPI"
+ "text": "gevent"
}
}
]
@@ -3334,17 +3289,17 @@
}
},
{
- "ID": "14841",
+ "ID": "14865",
"typeID": "__group__",
- "zOrder": "85",
- "measuredW": "146",
+ "zOrder": "90",
+ "measuredW": "89",
"measuredH": "42",
- "w": "146",
+ "w": "89",
"h": "42",
- "x": "773",
- "y": "888",
+ "x": "937",
+ "y": "1237",
"properties": {
- "controlName": "101-python-package-managers:pip"
+ "controlName": "101-python-frameworks:asynchronous:aiohttp"
},
"children": {
"controls": {
@@ -3353,7 +3308,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "146",
+ "w": "89",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -3367,13 +3322,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "24",
+ "measuredW": "50",
"measuredH": "24",
- "x": "61",
+ "x": "20",
"y": "9",
"properties": {
"size": "16",
- "text": "Pip"
+ "text": "aiohttp"
}
}
]
@@ -3381,17 +3336,17 @@
}
},
{
- "ID": "14842",
+ "ID": "14866",
"typeID": "__group__",
- "zOrder": "86",
- "measuredW": "146",
+ "zOrder": "91",
+ "measuredW": "91",
"measuredH": "42",
- "w": "146",
+ "w": "91",
"h": "42",
- "x": "773",
- "y": "934",
+ "x": "936",
+ "y": "1283",
"properties": {
- "controlName": "102-python-package-managers:conda"
+ "controlName": "102-python-frameworks:asynchronous:tornado"
},
"children": {
"controls": {
@@ -3400,7 +3355,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "146",
+ "w": "91",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -3414,13 +3369,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "48",
+ "measuredW": "60",
"measuredH": "24",
- "x": "49",
+ "x": "16",
"y": "9",
"properties": {
"size": "16",
- "text": "Conda"
+ "text": "Tornado"
}
}
]
@@ -3428,92 +3383,46 @@
}
},
{
- "ID": "14843",
+ "ID": "14867",
"typeID": "__group__",
- "zOrder": "87",
- "measuredW": "352",
- "measuredH": "54",
- "w": "352",
- "h": "54",
- "x": "1027",
- "y": "302",
+ "zOrder": "92",
+ "measuredW": "91",
+ "measuredH": "42",
+ "w": "91",
+ "h": "42",
+ "x": "936",
+ "y": "1329",
"properties": {
- "controlName": "100-python-roadmap-note"
+ "controlName": "103-python-frameworks:asynchronous:sanic"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
- "typeID": "TextArea",
+ "typeID": "Canvas",
"zOrder": "0",
- "w": "352",
- "h": "54",
- "measuredW": "200",
- "measuredH": "140",
+ "w": "91",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
"x": "0",
- "y": "0"
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
},
{
"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",
+ "measuredW": "41",
"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"
- }
- }
- ]
- }
+ "x": "25",
+ "y": "9",
+ "properties": {
+ "size": "16",
+ "text": "Sanic"
}
}
]
@@ -3521,92 +3430,286 @@
}
},
{
- "ID": "14844",
- "typeID": "Canvas",
- "zOrder": "88",
- "w": "328",
- "h": "200",
- "measuredW": "100",
- "measuredH": "70",
- "x": "215",
- "y": "133"
+ "ID": "14868",
+ "typeID": "Arrow",
+ "zOrder": "15",
+ "w": "112",
+ "h": "1",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "997",
+ "y": "1057",
+ "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": "14869",
+ "typeID": "Arrow",
+ "zOrder": "14",
+ "w": "112",
+ "h": "1",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "997",
+ "y": "1212",
+ "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": "14870",
+ "typeID": "Arrow",
+ "zOrder": "13",
+ "w": "111",
+ "h": "34",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1011",
+ "y": "1012",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0.047263099007864184,
+ "y": -0.34666666666657875
+ },
+ "p1": {
+ "x": 0.4166479025358807,
+ "y": -0.11155062310930966
+ },
+ "p2": {
+ "x": 111.34668926623954,
+ "y": 34.03347757295023
+ }
+ }
+ },
+ {
+ "ID": "14871",
+ "typeID": "Arrow",
+ "zOrder": "12",
+ "w": "142",
+ "h": "85",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1014",
+ "y": "962",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0.047263099007864184,
+ "y": -0.34666666666657875
+ },
+ "p1": {
+ "x": 0.45447116402693255,
+ "y": -0.14876029092509369
+ },
+ "p2": {
+ "x": 141.9075249167838,
+ "y": 85.08956113800468
+ }
+ }
+ },
+ {
+ "ID": "14872",
+ "typeID": "Arrow",
+ "zOrder": "9",
+ "w": "87",
+ "h": "47",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1020",
+ "y": "1217",
+ "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": "14873",
+ "typeID": "Arrow",
+ "zOrder": "10",
+ "w": "138",
+ "h": "87",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1021",
+ "y": "1220",
+ "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": "14845",
+ "ID": "14874",
+ "typeID": "Arrow",
+ "zOrder": "11",
+ "w": "139",
+ "h": "134",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1023",
+ "y": "1222",
+ "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": "14875",
+ "typeID": "Arrow",
+ "zOrder": "1",
+ "w": "162",
+ "h": "70",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "978",
+ "y": "1054",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 162,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.38529283745163273,
+ "y": 0.1707591687518475
+ },
+ "p2": {
+ "x": -0.05325918258233742,
+ "y": 69.87473104876676
+ }
+ }
+ },
+ {
+ "ID": "14876",
"typeID": "__group__",
- "zOrder": "89",
- "measuredW": "189",
- "measuredH": "27",
- "w": "189",
- "h": "27",
- "x": "243",
- "y": "210",
+ "zOrder": "93",
+ "measuredW": "89",
+ "measuredH": "42",
+ "w": "89",
+ "h": "42",
+ "x": "1179",
+ "y": "1111",
"properties": {
- "controlName": "ext_link:roadmap.sh/backend"
+ "controlName": "102-python-frameworks:fastapi"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
- "typeID": "Label",
+ "typeID": "Canvas",
"zOrder": "0",
- "measuredW": "156",
- "measuredH": "26",
- "x": "33",
+ "w": "89",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
"y": "0",
"properties": {
- "size": "18",
- "text": "Backend Roadmap"
+ "color": "16770457"
}
},
{
"ID": "1",
- "typeID": "__group__",
+ "typeID": "Label",
"zOrder": "1",
- "measuredW": "24",
+ "measuredW": "56",
"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"
- }
- }
- }
- ]
- }
+ "x": "17",
+ "y": "9",
+ "properties": {
+ "size": "16",
+ "text": "FastAPI"
}
}
]
@@ -3614,81 +3717,101 @@
}
},
{
- "ID": "14846",
+ "ID": "14886",
+ "typeID": "Arrow",
+ "zOrder": "98",
+ "w": "1",
+ "h": "139",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "863",
+ "y": "1653",
+ "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": "14887",
+ "typeID": "TextArea",
+ "zOrder": "99",
+ "w": "552",
+ "h": "124",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "575",
+ "y": "1584"
+ },
+ {
+ "ID": "14888",
+ "typeID": "Label",
+ "zOrder": "100",
+ "measuredW": "468",
+ "measuredH": "25",
+ "x": "604",
+ "y": "1604",
+ "properties": {
+ "size": "17",
+ "text": "For ecosystem and more, check other tracks involving Python"
+ }
+ },
+ {
+ "ID": "14889",
"typeID": "__group__",
- "zOrder": "90",
- "measuredW": "183",
- "measuredH": "27",
- "w": "183",
- "h": "27",
- "x": "243",
- "y": "246",
+ "zOrder": "101",
+ "measuredW": "229",
+ "measuredH": "44",
+ "w": "229",
+ "h": "44",
+ "x": "870",
+ "y": "1639",
"properties": {
- "controlName": "ext_link:roadmap.sh/javascript"
+ "controlName": "ext_link:roadmap.sh/devops"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
- "typeID": "Label",
+ "typeID": "TextArea",
"zOrder": "0",
- "measuredW": "150",
- "measuredH": "26",
- "x": "33",
+ "w": "229",
+ "h": "44",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "0",
"y": "0",
"properties": {
- "size": "18",
- "text": "DevOps Roadmap"
+ "color": "16770457"
}
},
{
"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"
- }
- }
- }
- ]
- }
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "141",
+ "measuredH": "25",
+ "x": "44",
+ "y": "9",
+ "properties": {
+ "size": "17",
+ "text": "DevOps Roadmap"
}
}
]
@@ -3696,99 +3819,289 @@
}
},
{
- "ID": "14848",
- "typeID": "Label",
- "zOrder": "91",
- "measuredW": "209",
- "measuredH": "32",
- "x": "243",
- "y": "162",
- "properties": {
- "size": "24",
- "text": "Related Roadmaps"
- }
- },
- {
- "ID": "14849",
+ "ID": "14890",
"typeID": "__group__",
- "zOrder": "92",
- "measuredW": "251",
- "measuredH": "27",
- "w": "251",
- "h": "27",
- "x": "243",
- "y": "284",
+ "zOrder": "102",
+ "measuredW": "252",
+ "measuredH": "44",
+ "w": "252",
+ "h": "44",
+ "x": "604",
+ "y": "1639",
"properties": {
- "controlName": "ext_link:roadmap.sh/software-design-architecture"
+ "controlName": "ext_link:roadmap.sh/backend"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
- "typeID": "Label",
+ "typeID": "TextArea",
"zOrder": "0",
- "measuredW": "218",
- "measuredH": "26",
- "x": "33",
+ "w": "252",
+ "h": "44",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "0",
"y": "0",
"properties": {
- "size": "18",
- "text": "Software Design Roadmap"
+ "color": "16770457"
}
},
{
"ID": "1",
- "typeID": "__group__",
+ "typeID": "Label",
"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"
- }
- }
- }
- ]
- }
+ "measuredW": "147",
+ "measuredH": "25",
+ "x": "52",
+ "y": "9",
+ "properties": {
+ "size": "17",
+ "text": "Backend Roadmap"
}
}
]
}
}
+ },
+ {
+ "ID": "14891",
+ "typeID": "Arrow",
+ "zOrder": "8",
+ "w": "1",
+ "h": "177",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "859",
+ "y": "1474",
+ "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": "14892",
+ "typeID": "Arrow",
+ "zOrder": "7",
+ "w": "1",
+ "h": "164",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1205",
+ "y": "1054",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.4604452230239243,
+ "y": 0.0036766536054163917
+ },
+ "p2": {
+ "x": 0,
+ "y": 164.29796919462592
+ }
+ }
+ },
+ {
+ "ID": "14893",
+ "typeID": "Arrow",
+ "zOrder": "6",
+ "w": "140",
+ "h": "3",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "616",
+ "y": "1478",
+ "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": "14894",
+ "typeID": "Arrow",
+ "zOrder": "5",
+ "w": "135",
+ "h": "32",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "616",
+ "y": "1432",
+ "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": "14895",
+ "typeID": "Arrow",
+ "zOrder": "4",
+ "w": "134",
+ "h": "79",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "615",
+ "y": "1382",
+ "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": "14896",
+ "typeID": "Arrow",
+ "zOrder": "3",
+ "w": "185",
+ "h": "119",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "621",
+ "y": "1340",
+ "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": "14897",
+ "typeID": "Arrow",
+ "zOrder": "2",
+ "w": "3",
+ "h": "759",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "857",
+ "y": "706",
+ "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": "14899",
+ "typeID": "Arrow",
+ "zOrder": "0",
+ "w": "158",
+ "h": "62",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "972",
+ "y": "1139",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0.047263099007864184,
+ "y": 0.6533333333334213
+ },
+ "p1": {
+ "x": 0.6549769871651536,
+ "y": 0.17428100166851102
+ },
+ "p2": {
+ "x": 157.98689817887566,
+ "y": 62.80486195765479
+ }
+ }
}
]
},
@@ -3800,10 +4113,10 @@
},
"branchID": "Master",
"resourceID": "4BE92169-157F-4FC5-8E20-403CBCF7A6C6",
- "mockupH": "1289",
+ "mockupH": "1659",
"mockupW": "1164",
"measuredW": "1379",
- "measuredH": "1422",
+ "measuredH": "1792",
"version": "1.0"
},
"groupOffset": {