1
+ <!--
2
+ -- Copyright (C) 2020 Arm Mbed. All rights reserved.
3
+ -- SPDX-License-Identifier: Apache-2.0
4
+ -->
5
+ <!doctype html>
6
+ < html lang ="en ">
7
+ < head >
8
+ < meta charset ="utf-8 ">
9
+ < meta name ="viewport " content ="width=device-width, initial-scale=1, minimum-scale=1 " />
10
+ < meta name ="generator " content ="pdoc 0.7.5 " />
11
+ < title > mbed_tools_lib.python_helpers API documentation</ title >
12
+ < meta name ="description " content ="Helpers for python language related functions. " />
13
+ < link href ='https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.0/normalize.min.css ' rel ='stylesheet '>
14
+ < link href ='https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/8.0.0/sanitize.min.css ' rel ='stylesheet '>
15
+ < link href ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css " rel ="stylesheet ">
16
+ < style > .flex {display : flex !important }body {line-height : 1.5em }# content {padding : 20px }# sidebar {padding : 30px ;overflow : hidden}.http-server-breadcrumbs {font-size : 130% ;margin : 0 0 15px 0 }# footer {font-size : .75em ;padding : 5px 30px ;border-top : 1px solid # ddd ;text-align : right}# footer p {margin : 0 0 0 1em ;display : inline-block}# footer p : last-child {margin-right : 30px }h1 , h2 , h3 , h4 , h5 {font-weight : 300 }h1 {font-size : 2.5em ;line-height : 1.1em }h2 {font-size : 1.75em ;margin : 1em 0 .50em 0 }h3 {font-size : 1.4em ;margin : 25px 0 10px 0 }h4 {margin : 0 ;font-size : 105% }a {color : # 058 ;text-decoration : none;transition : color .3s ease-in-out}a : hover {color : # e82 }.title code {font-weight : bold}h2 [id ^= "header-" ]{margin-top : 2em }.ident {color : # 900 }pre code {background : # f8f8f8 ;font-size : .8em ;line-height : 1.4em }code {background : # f2f2f1 ;padding : 1px 4px ;overflow-wrap : break-word}h1 code {background : transparent}pre {background : # f8f8f8 ;border : 0 ;border-top : 1px solid # ccc ;border-bottom : 1px solid # ccc ;margin : 1em 0 ;padding : 1ex }# http-server-module-list {display : flex;flex-flow : column}# http-server-module-list div {display : flex}# http-server-module-list dt {min-width : 10% }# http-server-module-list p {margin-top : 0 }.toc ul , # index {list-style-type : none;margin : 0 ;padding : 0 }# index code {background : transparent}# index h3 {border-bottom : 1px solid # ddd }# index ul {padding : 0 }# index h4 {font-weight : bold}# index h4 + ul {margin-bottom : .6em }@media (min-width : 200ex ){# index .two-column {column-count : 2 }}@media (min-width : 300ex ){# index .two-column {column-count : 3 }}dl {margin-bottom : 2em }dl dl : last-child {margin-bottom : 4em }dd {margin : 0 0 1em 3em }# header-classes + dl > dd {margin-bottom : 3em }dd dd {margin-left : 2em }dd p {margin : 10px 0 }.name {background : # eee ;font-weight : bold;font-size : .85em ;padding : 5px 10px ;display : inline-block;min-width : 40% }.name : hover {background : # e0e0e0 }.name > span : first-child {white-space : nowrap}.name .class > span : nth-child (2 ){margin-left : .4em }.inherited {color : # 999 ;border-left : 5px solid # eee ;padding-left : 1em }.inheritance em {font-style : normal;font-weight : bold}.desc h2 {font-weight : 400 ;font-size : 1.25em }.desc h3 {font-size : 1em }.desc dt code {background : inherit}.source summary , .git-link-div {color : # 666 ;text-align : right;font-weight : 400 ;font-size : .8em ;text-transform : uppercase}.source summary > * {white-space : nowrap;cursor : pointer}.git-link {color : inherit;margin-left : 1em }.source pre {max-height : 500px ;overflow : auto;margin : 0 }.source pre code {font-size : 12px ;overflow : visible}.hlist {list-style : none}.hlist li {display : inline}.hlist li : after {content : ',\2002' }.hlist li : last-child : after {content : none}.hlist .hlist {display : inline;padding-left : 1em }img {max-width : 100% }.admonition {padding : .1em .5em ;margin-bottom : 1em }.admonition-title {font-weight : bold}.admonition .note , .admonition .info , .admonition .important {background : # aef }.admonition .todo , .admonition .versionadded , .admonition .tip , .admonition .hint {background : # dfd }.admonition .warning , .admonition .versionchanged , .admonition .deprecated {background : # fd4 }.admonition .error , .admonition .danger , .admonition .caution {background : lightpink}</ style >
17
+ < style media ="screen and (min-width: 700px) "> @media screen and (min-width : 700px ){# sidebar {width : 30% }# content {width : 70% ;max-width : 100ch ;padding : 3em 4em ;border-left : 1px solid # ddd }pre code {font-size : 1em }.item .name {font-size : 1em }main {display : flex;flex-direction : row-reverse;justify-content : flex-end}.toc ul ul , # index ul {padding-left : 1.5em }.toc > ul > li {margin-top : .5em }}</ style >
18
+ < style media ="print "> @media print{# sidebar h1 {page-break-before : always}.source {display : none}}@media print{* {background : transparent !important ;color : # 000 !important ;box-shadow : none !important ;text-shadow : none !important }a [href ]: after {content : " (" attr (href) ")" ;font-size : 90% }a [href ][title ]: after {content : none}abbr [title ]: after {content : " (" attr (title) ")" }.ir a : after , a [href ^= "javascript:" ]: after , a [href ^= "#" ]: after {content : "" }pre , blockquote {border : 1px solid # 999 ;page-break-inside : avoid}thead {display : table-header-group}tr , img {page-break-inside : avoid}img {max-width : 100% !important }@page {margin : 0.5cm }p , h2 , h3 {orphans : 3 ;widows : 3 }h1 , h2 , h3 , h4 , h5 , h6 {page-break-after : avoid}}</ style >
19
+ </ head >
20
+ < body >
21
+ < main >
22
+ < article id ="content ">
23
+ < header >
24
+ < h1 class ="title "> Module < code > mbed_tools_lib.python_helpers</ code > </ h1 >
25
+ </ header >
26
+ < section id ="section-intro ">
27
+ < p > Helpers for python language related functions.</ p >
28
+ < details class ="source ">
29
+ < summary >
30
+ < span > Expand source code</ span >
31
+ </ summary >
32
+ < pre > < code class ="python "> #
33
+ # Copyright (C) 2020 Arm Mbed. All rights reserved.
34
+ # SPDX-License-Identifier: Apache-2.0
35
+ #
36
+ """Helpers for python language related functions."""
37
+ import sys
38
+ from collections import namedtuple
39
+ from typing import NamedTuple, Iterable, Any, cast
40
+
41
+
42
+ def minimum_python_version(major: int, minor: int) -> bool:
43
+ """States whether the python in use is more recent than set major,minor versions."""
44
+ return sys.version_info.major >= major and sys.version_info.minor >= minor
45
+
46
+
47
+ def named_tuple_with_defaults(typename: str, field_names: Iterable[str], defaults: Iterable[Any]) -> NamedTuple:
48
+ """Gets a named tuple set with default values.
49
+
50
+ defaults field only appeared in Python 3.7.
51
+ See https://stackoverflow.com/questions/11351032/namedtuple-and-default-values-for-optional-keyword-arguments
52
+ """
53
+ if minimum_python_version(3, 7):
54
+ return namedtuple(typename=typename, field_names=field_names, defaults=defaults) # type: ignore
55
+ else:
56
+ a_tuple: NamedTuple = namedtuple(typename=typename, field_names=field_names) # type: ignore
57
+ a_tuple.__new__.__defaults__ = tuple(defaults) # type: ignore
58
+ return cast(NamedTuple, a_tuple)</ code > </ pre >
59
+ </ details >
60
+ </ section >
61
+ < section >
62
+ </ section >
63
+ < section >
64
+ </ section >
65
+ < section >
66
+ < h2 class ="section-title " id ="header-functions "> Functions</ h2 >
67
+ < dl >
68
+ < dt id ="mbed_tools_lib.python_helpers.minimum_python_version "> < code class ="name flex ">
69
+ < span > def < span class ="ident "> minimum_python_version</ span > </ span > (< span > major:Β int, minor:Β int) -> Β bool</ span >
70
+ </ code > </ dt >
71
+ < dd >
72
+ < section class ="desc "> < p > States whether the python in use is more recent than set major,minor versions.</ p > </ section >
73
+ < details class ="source ">
74
+ < summary >
75
+ < span > Expand source code</ span >
76
+ </ summary >
77
+ < pre > < code class ="python "> def minimum_python_version(major: int, minor: int) -> bool:
78
+ """States whether the python in use is more recent than set major,minor versions."""
79
+ return sys.version_info.major >= major and sys.version_info.minor >= minor</ code > </ pre >
80
+ </ details >
81
+ </ dd >
82
+ < dt id ="mbed_tools_lib.python_helpers.named_tuple_with_defaults "> < code class ="name flex ">
83
+ < span > def < span class ="ident "> named_tuple_with_defaults</ span > </ span > (< span > typename:Β str, field_names:Β Iterable[str], defaults:Β Iterable[Any]) -> Β < class Β 'NamedTuple'> </ span >
84
+ </ code > </ dt >
85
+ < dd >
86
+ < section class ="desc "> < p > Gets a named tuple set with default values.</ p >
87
+ < p > defaults field only appeared in Python 3.7.
88
+ See < a href ="https://stackoverflow.com/questions/11351032/namedtuple-and-default-values-for-optional-keyword-arguments "> https://stackoverflow.com/questions/11351032/namedtuple-and-default-values-for-optional-keyword-arguments</ a > </ p > </ section >
89
+ < details class ="source ">
90
+ < summary >
91
+ < span > Expand source code</ span >
92
+ </ summary >
93
+ < pre > < code class ="python "> def named_tuple_with_defaults(typename: str, field_names: Iterable[str], defaults: Iterable[Any]) -> NamedTuple:
94
+ """Gets a named tuple set with default values.
95
+
96
+ defaults field only appeared in Python 3.7.
97
+ See https://stackoverflow.com/questions/11351032/namedtuple-and-default-values-for-optional-keyword-arguments
98
+ """
99
+ if minimum_python_version(3, 7):
100
+ return namedtuple(typename=typename, field_names=field_names, defaults=defaults) # type: ignore
101
+ else:
102
+ a_tuple: NamedTuple = namedtuple(typename=typename, field_names=field_names) # type: ignore
103
+ a_tuple.__new__.__defaults__ = tuple(defaults) # type: ignore
104
+ return cast(NamedTuple, a_tuple)</ code > </ pre >
105
+ </ details >
106
+ </ dd >
107
+ </ dl >
108
+ </ section >
109
+ < section >
110
+ </ section >
111
+ </ article >
112
+ < nav id ="sidebar ">
113
+ < h1 > Index</ h1 >
114
+ < div class ="toc ">
115
+ < ul > </ ul >
116
+ </ div >
117
+ < ul id ="index ">
118
+ < li > < h3 > Super-module</ h3 >
119
+ < ul >
120
+ < li > < code > < a title ="mbed_tools_lib " href ="index.html "> mbed_tools_lib</ a > </ code > </ li >
121
+ </ ul >
122
+ </ li >
123
+ < li > < h3 > < a href ="#header-functions "> Functions</ a > </ h3 >
124
+ < ul class ="">
125
+ < li > < code > < a title ="mbed_tools_lib.python_helpers.minimum_python_version " href ="#mbed_tools_lib.python_helpers.minimum_python_version "> minimum_python_version</ a > </ code > </ li >
126
+ < li > < code > < a title ="mbed_tools_lib.python_helpers.named_tuple_with_defaults " href ="#mbed_tools_lib.python_helpers.named_tuple_with_defaults "> named_tuple_with_defaults</ a > </ code > </ li >
127
+ </ ul >
128
+ </ li >
129
+ </ ul >
130
+ </ nav >
131
+ </ main >
132
+ < footer id ="footer ">
133
+ < p > Generated by < a href ="https://pdoc3.github.io/pdoc "> < cite > pdoc</ cite > 0.7.5</ a > .</ p >
134
+ </ footer >
135
+ < script src ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js "> </ script >
136
+ < script > hljs . initHighlightingOnLoad ( ) </ script >
137
+ </ body >
138
+ </ html >
0 commit comments