1 | initial version |

The solution is to use a filename.py file.

For the sage specific syntax, find the corresponding Python code using `preparse`

.

Find the sage specific functions to import using `import_statements`

.

For example, suppose that your sage file has

```
R.<x> = PolynomialRing(QQ)
```

which is not correct Python syntax. Check how to turn that into correct Python.

```
sage: preparse('R.<x> = PolynomialRing(QQ)')
"R = PolynomialRing(QQ, names=('x',)); (x,) = R._first_ngens(1)"
```

so in filename.py you would write

```
R = PolynomialRing(QQ, names=('x',))
(x,) = R._first_ngens(1)
```

instead of

```
R.<x> = PolynomialRing(QQ)
```

You would also need the import statements, which you find with

```
sage: import_statements('PolynomialRing')
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
sage: import_statements('QQ')
...
from sage.rings.rational_field import QQ
```

So your python file would really have

```
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
from sage.rings.rational_field import QQ
R = PolynomialRing(QQ, names=('x',))
(x,) = R._first_ngens(1)
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.