Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
P
pepallow
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
9
Konular (issue)
9
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
pepallow
Commits
4e1d81ef
Kaydet (Commit)
4e1d81ef
authored
Nis 07, 2019
tarafından
Muhammed Alkan
Kaydeden (comit)
Batuhan Taşkaya
Nis 07, 2019
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Bugfixes & New peps (#1)
* Fix bugs & correct output of PEP 211 * Add tuple length control * Add PEP276
üst
08797e1d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
42 additions
and
6 deletions
+42
-6
allow.py
pepallow/allow.py
+3
-1
p211.py
pepallow/peps/p211.py
+15
-3
p276.py
pepallow/peps/p276.py
+22
-0
romana.py
pepallow/romana.py
+2
-2
No files found.
pepallow/allow.py
Dosyayı görüntüle @
4e1d81ef
...
...
@@ -3,11 +3,13 @@ import sys
from
contextlib
import
suppress
,
ExitStack
from
pepallow.peps.p211
import
PEP211Transformer
from
pepallow.peps.p313
import
PEP313Transformer
from
pepallow.peps.p231
import
PEP231Transformer
from
pepallow.peps.p276
import
PEP276Transformer
from
pepallow.peps.p313
import
PEP313Transformer
PEPS
=
{
211
:
{
"transformer"
:
PEP211Transformer
(),
"suppress"
:
[
TypeError
]},
276
:
{
"transformer"
:
PEP276Transformer
(),
"suppress"
:
[
TypeError
]},
231
:
{
"transformer"
:
PEP231Transformer
(),
"suppress"
:
[
AttributeError
]},
313
:
{
"transformer"
:
PEP313Transformer
(),
"suppress"
:
[
NameError
]},
}
...
...
pepallow/peps/p211.py
Dosyayı görüntüle @
4e1d81ef
...
...
@@ -16,8 +16,20 @@ class PEP211Transformer(ast.NodeTransformer):
"""
def
visit_For
(
self
,
node
):
if
isinstance
(
node
.
iter
,
ast
.
BinOp
)
and
isinstance
(
node
.
iter
.
op
,
ast
.
MatMult
):
node
.
iter
=
ast
.
Call
(
ast
.
Name
(
"zip"
,
ast
.
Load
()),
[
node
.
iter
.
left
,
node
.
iter
.
right
],
[]
if
(
isinstance
(
node
.
target
,
ast
.
Tuple
)
and
isinstance
(
node
.
iter
,
ast
.
BinOp
)
and
isinstance
(
node
.
iter
.
op
,
ast
.
MatMult
)
):
if
len
(
node
.
target
.
elts
)
!=
2
:
raise
ValueError
(
"There is should be only 2 names to unpack."
)
a
,
b
=
node
.
target
.
elts
return
ast
.
For
(
target
=
a
,
iter
=
node
.
iter
.
left
,
body
=
[
ast
.
For
(
target
=
b
,
iter
=
node
.
iter
.
right
,
body
=
node
.
body
,
orelse
=
[])
],
orelse
=
node
.
orelse
,
)
return
node
pepallow/peps/p276.py
0 → 100644
Dosyayı görüntüle @
4e1d81ef
import
ast
class
PEP276Transformer
(
ast
.
NodeTransformer
):
"""
PEP276 => Iterator ints
for n in 3:
...
=>
for n in range(3):
...
"""
def
visit_For
(
self
,
node
):
if
isinstance
(
node
.
iter
,
ast
.
Num
):
if
not
isinstance
(
node
.
iter
.
n
,
int
):
raise
TypeError
(
"The number should be integer, not float nor other number types."
)
node
.
iter
=
ast
.
Call
(
ast
.
Name
(
"range"
,
ast
.
Load
()),
[
node
.
iter
],
[])
return
node
pepallow/romana.py
Dosyayı görüntüle @
4e1d81ef
...
...
@@ -6,7 +6,7 @@ https://github.com/abstractequalsmagic/romana/
"""
ROMAN_LITERALS
=
{
"I"
:
1
,
,
"I"
:
1
,
"V"
:
5
,
"X"
:
10
,
"L"
:
50
,
...
...
@@ -30,4 +30,4 @@ def roman(roman_lit):
elif
literal
<=
result
:
result
+=
literal
return
result
return
result
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment