mirror of
https://github.com/simonw/datasette-vega.git
synced 2026-09-27 04:14:33 +02:00
Packaged everything up as a Datasette plugin
I used a variant on the pattern described here to run "npm run build" when creating the wheel: http://cra.mr/2014/12/19/distributing-js-with-python To generate just the static assets (in datasette_vega/static) run this: python3 setup.py build_static To build the package (and automatically run the above) do this: python3 setup.py bdist_wheel
This commit is contained in:
parent
1874ee3427
commit
e6c0fec074
3 changed files with 79 additions and 0 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -22,3 +22,5 @@ dist
|
|||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
static
|
||||
|
|
|
|||
11
datasette_vega/__init__.py
Normal file
11
datasette_vega/__init__.py
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
from datasette import hookimpl
|
||||
|
||||
|
||||
@hookimpl
|
||||
def extra_css_urls():
|
||||
return ["/-/static-plugins/datasette_vega/datasette-vega.css"]
|
||||
|
||||
|
||||
@hookimpl
|
||||
def extra_js_urls():
|
||||
return ["/-/static-plugins/datasette_vega/datasette-vega.js"]
|
||||
66
setup.py
Normal file
66
setup.py
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
from distutils.core import Command
|
||||
from setuptools import setup
|
||||
from subprocess import check_output
|
||||
from wheel.bdist_wheel import bdist_wheel
|
||||
import os
|
||||
|
||||
VERSION = '0.1'
|
||||
ROOT = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
def get_long_description():
|
||||
with open(os.path.join(
|
||||
os.path.dirname(os.path.abspath(__file__)), 'README.md'
|
||||
), encoding='utf8') as fp:
|
||||
return fp.read()
|
||||
|
||||
|
||||
class BdistWheelWithBuildStatic(bdist_wheel):
|
||||
def run(self):
|
||||
self.run_command('build_static')
|
||||
return bdist_wheel.run(self)
|
||||
|
||||
|
||||
class BuildStatic(Command):
|
||||
user_options = []
|
||||
|
||||
def initialize_options(self):
|
||||
pass
|
||||
|
||||
def finalize_options(self):
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
check_output(['npm', 'run', 'build'], cwd=ROOT)
|
||||
check_output(['mkdir', '-p', 'datasette_vega/static'], cwd=ROOT)
|
||||
check_output("mv build/static/js/*.js datasette_vega/static/datasette-vega.js", shell=True, cwd=ROOT)
|
||||
check_output("mv build/static/css/*.css datasette_vega/static/datasette-vega.css", shell=True, cwd=ROOT)
|
||||
|
||||
|
||||
setup(
|
||||
name='datasette-vega',
|
||||
description='A Datasette plugin that provides tools for generating charts using Vega',
|
||||
long_description=get_long_description(),
|
||||
long_description_content_type='text/markdown',
|
||||
author='Simon Willison',
|
||||
url='https://github.com/simonw/datasette-vega',
|
||||
license='Apache License, Version 2.0',
|
||||
version=VERSION,
|
||||
packages=['datasette_vega'],
|
||||
entry_points={
|
||||
'datasette': [
|
||||
'cluster_map = datasette_vega'
|
||||
],
|
||||
},
|
||||
package_data={
|
||||
'datasette_vega': [
|
||||
'static/datasette-vega.js',
|
||||
'static/datasette-vega.css',
|
||||
],
|
||||
},
|
||||
cmdclass={
|
||||
'bdist_wheel': BdistWheelWithBuildStatic,
|
||||
'build_static': BuildStatic,
|
||||
},
|
||||
install_requires=['datasette']
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue