Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
Darwcss
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)
0
Konular (issue)
0
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
Darwcss
Commits
69d6a8d4
Kaydet (Commit)
69d6a8d4
authored
Ock 01, 2019
tarafından
Batuhan Osman TASKAYA
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
flake8 fix
üst
bb685b49
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
22 deletions
+39
-22
Jenkinsfile
Jenkinsfile
+1
-1
darwcss.py
darwcss/darwcss.py
+38
-21
No files found.
Jenkinsfile
Dosyayı görüntüle @
69d6a8d4
...
...
@@ -22,7 +22,7 @@ pipeline {
stage
(
'flake8'
)
{
steps
{
sh
""". .venv/bin/activate
flake8 --max-complexity 7 --output-file --ignore E501 flake8_results.txt darwcss/
flake8 --max-complexity 7 --output-file --ignore E501
,F402
flake8_results.txt darwcss/
[ -f flake8_results.txt ] && flake8_junit flake8_results.txt test_flake8.xml;rm flake8_results.txt
"""
}
...
...
darwcss/darwcss.py
Dosyayı görüntüle @
69d6a8d4
...
...
@@ -10,26 +10,31 @@ from operator import attrgetter
from
functools
import
partial
from
dataclasses
import
dataclass
,
field
,
fields
,
MISSING
from
collections
import
UserDict
from
random
import
randint
"""
noqa:F821 = https://github.com/PyCQA/pyflakes/issues/373
"""
class
ArgumentMapping
(
UserDict
):
@classmethod
def
fill_rest
(
cls
,
keys
,
values
,
filler
=
None
,
cleaner
=
None
):
cleaner
=
cleaner
or
(
lambda
value
:
value
)
if
len
(
keys
)
!=
len
(
values
):
requested_keys
=
keys
[
len
(
keys
)
-
len
(
values
):]
requested_values
=
filler
(
requested_keys
)
if
callable
(
filler
)
else
repeat
(
filler
,
len
(
requested_keys
))
requested_values
=
(
filler
(
requested_keys
)
if
callable
(
filler
)
else
repeat
(
filler
,
len
(
requested_keys
))
)
requested_items
=
dict
(
zip
(
map
(
cleaner
,
requested_keys
),
requested_values
))
else
:
requested_items
=
{}
args
=
dict
(
zip
(
map
(
cleaner
,
keys
),
values
))
return
dict
(
**
args
,
**
requested_items
)
def
value_generator
(
fields
):
values
=
[]
for
field
in
fields
:
...
...
@@ -41,38 +46,49 @@ def value_generator(fields):
else
:
values
.
append
(
field
.
default_factory
())
return
values
def
init
(
*
values
,
**
kwds
):
self
=
kwds
.
pop
(
'self'
)
fields
=
kwds
.
pop
(
'fields'
)
self
=
kwds
.
pop
(
"self"
)
fields
=
kwds
.
pop
(
"fields"
)
for
key
,
value
in
kwds
.
items
():
fields
=
tuple
([
field
for
field
in
fields
if
hasattr
(
field
,
'name'
)
and
field
.
name
!=
key
])
args
=
ArgumentMapping
.
fill_rest
(
fields
,
values
,
filler
=
value_generator
,
cleaner
=
lambda
value
:
value
.
name
if
hasattr
(
value
,
"name"
)
else
value
)
fields
=
tuple
(
[
field
for
field
in
fields
if
hasattr
(
field
,
"name"
)
and
field
.
name
!=
key
]
)
args
=
ArgumentMapping
.
fill_rest
(
fields
,
values
,
filler
=
value_generator
,
cleaner
=
lambda
value
:
value
.
name
if
hasattr
(
value
,
"name"
)
else
value
,
)
args
.
update
(
kwds
)
for
field
,
value
in
args
.
items
():
if
hasattr
(
field
,
'name'
):
if
hasattr
(
field
,
"name"
):
field
=
field
.
name
setattr
(
self
,
field
,
value
)
if
hasattr
(
self
,
'__after_init__'
):
if
hasattr
(
self
,
"__after_init__"
):
self
.
__after_init__
(
self
)
return
None
def
fake_init
(
cls
,
fields
):
return
cls
(
**
dict
(
zip
(
map
(
attrgetter
(
"name"
),
fields
),
value_generator
(
fields
))))
def
attr_get
(
self
,
name
):
print
(
self
,
name
)
return
getattr
(
self
.
_self
,
name
)
def
configurable_dataclass
(
*
args
,
**
kwargs
):
cls
=
dataclass
(
*
args
,
**
kwargs
)
meta_conf
=
field
(
default_factory
=
dict
)
meta_conf
.
name
=
"meta_cfg"
cls_fields
=
fields
(
cls
)
cls
.
_self
=
fake_init
(
cls
,
cls_fields
)
cls
.
__init__
=
partial
(
init
,
self
=
cls
,
fields
=
cls_fields
+
(
meta_conf
,))
...
...
@@ -158,7 +174,7 @@ class Style:
def
__post_init__
(
self
)
->
None
:
self
.
value
=
render
(
self
.
value
)
f
=
currentframe
()
.
f_back
.
f_back
# type: ignore
f
=
currentframe
()
.
f_back
.
f_back
# type: ignore
l
,
g
=
f
.
f_locals
,
f
.
f_globals
if
l
.
get
(
"DARWCSS_AUTO"
,
g
.
get
(
"DARWCSS_AUTO"
,
False
)):
try
:
...
...
@@ -186,7 +202,8 @@ class Selector:
def
append
(
self
,
style
:
Style
)
->
None
:
self
.
styles
.
append
(
style
)
class
CSS
:
def
__init__
(
self
,
conf
:
Optional
[
Dict
]
=
None
)
->
None
:
self
.
selectors
:
Dict
[
str
,
Selector
]
=
{}
...
...
@@ -203,7 +220,7 @@ class CSS:
@contextmanager
def
selector
(
self
,
area
:
str
)
->
Generator
[
Selector
,
None
,
None
]:
selector
=
Selector
(
area
,
meta_cfg
=
self
.
conf
)
# type: ignore
selector
=
Selector
(
area
,
meta_cfg
=
self
.
conf
)
# type: ignore
try
:
yield
selector
finally
:
...
...
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