Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-pipeline
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
django-pipeline
Commits
a0ea33ac
Commit
a0ea33ac
authored
Feb 26, 2013
by
Timothée Peignier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
what if we use thread ?
parent
dd08558f
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
5 deletions
+14
-5
pipeline/compilers/__init__.py
+14
-5
No files found.
pipeline/compilers/__init__.py
View file @
a0ea33ac
from
__future__
import
unicode_literals
import
multiprocessing
import
os
import
subprocess
from
multiprocessing.pool
import
ThreadPool
from
django.contrib.staticfiles
import
finders
from
django.core.files.base
import
ContentFile
from
django.utils.encoding
import
smart_str
,
smart_bytes
...
...
@@ -17,19 +20,27 @@ class Compiler(object):
def
__init__
(
self
,
storage
=
default_storage
,
verbose
=
False
):
self
.
storage
=
storage
self
.
verbose
=
verbose
self
.
pool
=
ThreadPool
(
processes
=
multiprocessing
.
cpu_count
())
@property
def
compilers
(
self
):
return
[
to_class
(
compiler
)
for
compiler
in
settings
.
PIPELINE_COMPILERS
]
def
compile
(
self
,
paths
,
force
=
False
):
def
_compile
(
args
):
try
:
compiler
=
args
[
0
]
compiler
.
compile_file
(
*
args
[
1
:])
except
CompilerError
:
if
not
self
.
storage
.
exists
(
output_path
)
or
settings
.
DEBUG
:
raise
files
=
[]
for
index
,
input_path
in
enumerate
(
paths
):
for
compiler
in
self
.
compilers
:
compiler
=
compiler
(
verbose
=
self
.
verbose
,
storage
=
self
.
storage
)
if
compiler
.
match_file
(
input_path
):
output_path
=
self
.
output_path
(
input_path
,
compiler
.
output_extension
)
paths
[
index
]
=
output_path
try
:
infile
=
finders
.
find
(
input_path
)
outfile
=
finders
.
find
(
output_path
)
if
outfile
is
None
:
...
...
@@ -37,10 +48,8 @@ class Compiler(object):
outdated
=
True
else
:
outdated
=
self
.
is_outdated
(
input_path
,
output_path
)
compiler
.
compile_file
(
infile
,
outfile
,
outdated
=
outdated
,
force
=
force
)
except
CompilerError
:
if
not
self
.
storage
.
exists
(
output_path
)
or
settings
.
DEBUG
:
raise
files
.
append
((
compiler
,
infile
,
outfile
,
outdated
,
force
))
self
.
pool
.
map
(
_compile
,
files
)
return
paths
def
output_path
(
self
,
path
,
extension
):
...
...
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