Comments (6)
Indeed, if you want to invoke Transcrypt from a Python script, simply importing it doesn't work. Invoking it is possible, but has to be done via the command line, as in shipment_test.py below. It's admitted that this is less elegant than be able to call the compiler directly. I'll register this as an enhancement.
import os
import webbrowser
shipDir = os.path.dirname (os.path.abspath (__file__)) .replace ('\\', '/')
rootDir = '/'.join (shipDir.split ('/')[ : -2])
def getAbsPath (relPath):
return '{}/{}'.format (rootDir, relPath)
def test (relPath, fileNamePrefix, run = False, switches = ''):
os.chdir (getAbsPath (relPath))
os.system ('run_transcrypt -b -m {}{}.py'.format (switches, fileNamePrefix))
if run:
os.chdir (getAbsPath (relPath))
os.system ('run_transcrypt -r {}.py'.format (fileNamePrefix))
webbrowser.open ('file://{}/{}.html'.format (getAbsPath (relPath), fileNamePrefix), new = 2)
webbrowser.open ('file://{}/{}.min.html'.format (getAbsPath (relPath), fileNamePrefix), new = 2)
for fcallSwitch in ('', '-f '):
test ('development/automated_tests/hello', 'autotest', True, fcallSwitch)
test ('development/automated_tests/transcrypt', 'autotest', True, fcallSwitch)
test ('demos/hello', 'hello', False, fcallSwitch)
test ('demos/jquery_demo', 'jquery_demo', False, fcallSwitch)
test ('demos/d3js_demo', 'd3js_demo', False, fcallSwitch)
test ('demos/pong', 'pong', False, fcallSwitch)
test ('demos/turtle_demos', 'star', False, fcallSwitch + '-p .user ')
test ('demos/turtle_demos', 'snowflake', False, fcallSwitch + '-p .user ')
if fcallSwitch:
print ('Shipment test completed')
else:
input ('Close browser tabs opened by shipment test and press [enter] for fcall test')
from transcrypt.
It should be left open if its "postponed"!?
from transcrypt.
Stricktly taken: Yes.
By closing it I am trying to make a distinction between short term and long term.
What you're proposing is certainly useful but it requires a reorganization of the compiler that is bound to initially break several things. It is something that only should be done in a period of relative "inertia" of the code.
So I've shoved it from the "open" list (that stares in my face each morning) to the closed list, that doesn't. This is admittedly a psychological trick to not be overwhelmed by what the future holds in store.
Come to think of it, maybe a better way to do this is assigning priority classes and keeping "postponeds" open.
By filtering on priority I could also keep my piece of mind...
from transcrypt.
By the way could you give me an assessment of how important this feature is for you. Personally I can live without it, but that isn't the norm.
from transcrypt.
After some thought: closing sends the wrong message.
Reopened and prio's introduced:
Must have
Want to have
Nice to have
Could have
The labels are a result of balancing benefit, effort and risk.
KR & thanks for the feedback!
Jacques
from transcrypt.
I don't expect this to be handled anytime soon, so I've added the label postponed and will close it again.
Motivation: #258.
Postponed issues can easily be searched since they share the same label.
from transcrypt.
Related Issues (20)
- nodejs_demo doesn't work as described on web site; does via readme HOT 2
- Compile error when importing a long (path and class) name HOT 2
- Feature: `__` private members/name mangling in classes HOT 1
- No error is thrown in list.pop(idx) when the index is out of range HOT 1
- Can you please maintain directory structure in __target__/ ? HOT 1
- A boolean operator is translated to a bitwise operator, not a boolean operator HOT 1
- A method in the second base class is not called even when the first base class is empty.
- Minification error on del[] HOT 1
- Python built-in map() to support more than one iterable HOT 3
- How to compare two methods?
- ... in python code aborts compilation HOT 1
- Add python 3.12 syntax support HOT 1
- sorted(x) modifies the argument x (bug?) HOT 3
- math.copysign() is not a function (missing?) HOT 2
- Handling JSON Module Compatibility in Transcrypt HOT 2
- How to write a module and test it HOT 1
- problems when running the autotests HOT 1
- Multiline literal JS that is ignored by CPython HOT 3
- % (modulus) operator returns a plus value when a minus operand is given HOT 1
- What is the best way to import a library when its type='module'? HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from transcrypt.