feat(presentation): present and future
This commit is contained in:
@@ -7,7 +7,10 @@
|
|||||||
|
|
||||||
#align(center, image("../figs/python-logo.svg"))
|
#align(center, image("../figs/python-logo.svg"))
|
||||||
|
|
||||||
Python is a widely used language, especially in data science
|
Python is a widely used language, especially in data science:
|
||||||
|
- Easy to learn
|
||||||
|
- Simple syntax
|
||||||
|
- Vast and thriving ecosystem
|
||||||
|
|
||||||
== It can bite
|
== It can bite
|
||||||
|
|
||||||
|
|||||||
@@ -443,7 +443,7 @@ Steps:
|
|||||||
== Customization
|
== Customization
|
||||||
|
|
||||||
#{
|
#{
|
||||||
show raw: set text(size: 0.69em)
|
show raw: set text(size: 0.8em)
|
||||||
item-by-item()[
|
item-by-item()[
|
||||||
- Domain Specific Types (e.g. units, scores, transformed data)
|
- Domain Specific Types (e.g. units, scores, transformed data)
|
||||||
```midas
|
```midas
|
||||||
|
|||||||
@@ -1,4 +1,55 @@
|
|||||||
#import "../requirements.typ": *
|
#import "../requirements.typ": *
|
||||||
|
#import codly: codly
|
||||||
|
|
||||||
#focus-slide(theme: "neon")[Current Status and Future]
|
#focus-slide(theme: "neon")[Current Status and Future]
|
||||||
// = Current Status and Future
|
// = Current Status and Future
|
||||||
|
|
||||||
|
== What Midas offers
|
||||||
|
|
||||||
|
- Working *static type checking* of a good subset of Python (including dataframes)
|
||||||
|
|
||||||
|
- *Custom type* definition language for domain-specific usages (supports generics, method overloads, dependent types, frame schemas, named predicates and more)
|
||||||
|
|
||||||
|
- Toolbox *CLI* with useful debug features
|
||||||
|
|
||||||
|
- Generation of *runtime assertions*
|
||||||
|
|
||||||
|
- Stubs for *seamless integration* with other type checkers
|
||||||
|
|
||||||
|
== What needs work
|
||||||
|
|
||||||
|
- Reference types (side effects)
|
||||||
|
```python
|
||||||
|
def modify_column(df: pd.DataFrame):
|
||||||
|
df["col"] = df["col"].astype(float)
|
||||||
|
```
|
||||||
|
- Reverse operators
|
||||||
|
```python
|
||||||
|
a = 1.0 + 1 # float.__add__(int)
|
||||||
|
b = 1 + 1.0 # float.__radd__(int)
|
||||||
|
```
|
||||||
|
- Logical short-circuit bypass
|
||||||
|
#codly(
|
||||||
|
highlights: (
|
||||||
|
(
|
||||||
|
line: 1,
|
||||||
|
start: 15,
|
||||||
|
tag: box(inset: (x: 0.5em))[_Always evaluated_ ],
|
||||||
|
fill: std.red.lighten(20%)
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
```python
|
||||||
|
value = v1 or cast(Type, v2)
|
||||||
|
```
|
||||||
|
|
||||||
|
== Possible extensions
|
||||||
|
|
||||||
|
- Visitor pattern $->$ easy to extend supported Python syntax
|
||||||
|
|
||||||
|
- Multi-file projects (```python import``` statements)
|
||||||
|
|
||||||
|
- Constraint solver
|
||||||
|
$
|
||||||
|
v in [1; 6] => v > 0
|
||||||
|
$
|
||||||
|
|||||||
Reference in New Issue
Block a user