Skip to content

Commit 2fff628

Browse files
authored
Merge pull request #1 from dataiku/first-version
First version
2 parents 5c60e57 + bb6a079 commit 2fff628

11 files changed

Lines changed: 746 additions & 0 deletions

File tree

.gitignore

Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
# DSS specific stuff
2+
dist/
3+
.wlock
4+
.ts
5+
6+
# Byte-compiled / optimized / DLL files
7+
__pycache__/
8+
*.py[cod]
9+
*$py.class
10+
11+
# C extensions
12+
*.so
13+
14+
# Distribution / packaging
15+
.Python
16+
build/
17+
develop-eggs/
18+
dist/
19+
downloads/
20+
eggs/
21+
.eggs/
22+
lib/
23+
lib64/
24+
parts/
25+
sdist/
26+
var/
27+
wheels/
28+
pip-wheel-metadata/
29+
share/python-wheels/
30+
*.egg-info/
31+
.installed.cfg
32+
*.egg
33+
MANIFEST
34+
.DS_Store
35+
36+
# PyInstaller
37+
# Usually these files are written by a python script from a template
38+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
39+
*.manifest
40+
*.spec
41+
42+
# Installer logs
43+
pip-log.txt
44+
pip-delete-this-directory.txt
45+
46+
# Unit test / coverage reports
47+
htmlcov/
48+
.tox/
49+
.nox/
50+
.coverage
51+
.coverage.*
52+
.cache
53+
nosetests.xml
54+
coverage.xml
55+
unit.xml
56+
*.cover
57+
*.py,cover
58+
.hypothesis/
59+
.pytest_cache/
60+
cover/
61+
62+
# Translations
63+
*.mo
64+
*.pot
65+
66+
# Django stuff:
67+
*.log
68+
local_settings.py
69+
db.sqlite3
70+
db.sqlite3-journal
71+
72+
# Flask stuff:
73+
instance/
74+
.webassets-cache
75+
76+
# Scrapy stuff:
77+
.scrapy
78+
79+
# Sphinx documentation
80+
docs/_build/
81+
82+
# PyBuilder
83+
target/
84+
85+
# Jupyter Notebook
86+
.ipynb_checkpoints
87+
88+
# IPython
89+
profile_default/
90+
ipython_config.py
91+
92+
# pyenv
93+
# For a library or package, you might want to ignore these files since the code is
94+
# intended to run in multiple environments; otherwise, check them in:
95+
.python-version
96+
97+
# pipenv
98+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
99+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
100+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
101+
# install all needed dependencies.
102+
Pipfile.lock
103+
104+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
105+
__pypackages__/
106+
107+
# Celery stuff
108+
celerybeat-schedule
109+
celerybeat.pid
110+
111+
# SageMath parsed files
112+
*.sage.py
113+
114+
# Environments
115+
.env
116+
.venv
117+
env/
118+
venv/
119+
ENV/
120+
env.bak/
121+
venv.bak/
122+
123+
# Spyder project settings
124+
.spyderproject
125+
.spyproject
126+
127+
# Rope project settings
128+
.ropeproject
129+
130+
# mkdocs documentation
131+
/site
132+
133+
# mypy
134+
.mypy_cache/
135+
.dmypy.json
136+
dmypy.json
137+
138+
# Pyre type checker
139+
.pyre/
140+
141+
# pytype static type analyzer
142+
.pytype/
143+
144+
# mac stuff
145+
.DS_Store
146+
147+
# History files
148+
.Rhistory
149+
.Rapp.history
150+
151+
# Session Data files
152+
.RData
153+
154+
# User-specific files
155+
.Ruserdata
156+
157+
# Example code in package build process
158+
*-Ex.R
159+
160+
# Output files from R CMD build
161+
/*.tar.gz
162+
163+
# Output files from R CMD check
164+
/*.Rcheck/
165+
166+
# RStudio files
167+
.Rproj.user/
168+
169+
# produced vignettes
170+
vignettes/*.html
171+
vignettes/*.pdf
172+
173+
# OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3
174+
.httr-oauth
175+
176+
# knitr and R markdown default cache directories
177+
*_cache/
178+
/cache/
179+
180+
# Temporary files created by R markdown
181+
*.utf8.md
182+
*.knit.md
183+
184+
# R Environment Variables
185+
.Renviron
186+
187+
# pkgdown site
188+
docs/
189+
190+
# translation temp files
191+
po/*~
192+
193+
# Compiled class file
194+
*.class
195+
196+
# Log file
197+
*.log
198+
199+
# BlueJ files
200+
*.ctxt
201+
202+
# Mobile Tools for Java (J2ME)
203+
.mtj.tmp/
204+
205+
# Package Files #
206+
*.jar
207+
*.war
208+
*.nar
209+
*.ear
210+
*.zip
211+
*.tar.gz
212+
*.rar
213+
214+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
215+
hs_err_pid*
216+
217+
.gradle
218+
**/build/
219+
!src/**/build/
220+
221+
# Ignore Gradle GUI config
222+
gradle-app.setting
223+
224+
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
225+
!gradle-wrapper.jar
226+
227+
# Cache of project
228+
.gradletasknamecache
229+
230+
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
231+
# gradle/wrapper/gradle-wrapper.properties
232+
.vscode/settings.json
233+
234+
# Editors files
235+
.idea
236+
*.vscode
237+
*.iml
238+
*.wlock

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Changelog
2+
3+
## [Version 1.0.0](link to release) - Initial release - YYYY-MM-DD
4+
- `Export to Snowflake stages` action from the flow
5+
- Scenario step to automate export
6+
- File format selection
7+
- Custom path
8+
- Overwrite option

CODE_OF_CONDUCT.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
- Using welcoming and inclusive language
18+
- Being respectful of differing viewpoints and experiences
19+
- Gracefully accepting constructive criticism
20+
- Focusing on what is best for the community
21+
- Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
- The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
- Trolling, insulting/derogatory comments, and personal or political attacks
28+
- Public or private harassment
29+
- Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
- Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at plugins@dataiku.com. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72+
73+
[homepage]: https://www.contributor-covenant.org
74+
75+
For answers to common questions about this code of conduct, see
76+
https://www.contributor-covenant.org/faq

Makefile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Makefile variables set automatically
2+
plugin_id=`cat plugin.json | python -c "import sys, json; print(str(json.load(sys.stdin)['id']).replace('/',''))"`
3+
plugin_version=`cat plugin.json | python -c "import sys, json; print(str(json.load(sys.stdin)['version']).replace('/',''))"`
4+
archive_file_name="dss-plugin-${plugin_id}-${plugin_version}.zip"
5+
remote_url=`git config --get remote.origin.url`
6+
last_commit_id=`git rev-parse HEAD`
7+
8+
9+
plugin:
10+
@echo "[START] Archiving plugin to dist/ folder..."
11+
@cat plugin.json | json_pp > /dev/null
12+
@rm -rf dist
13+
@mkdir dist
14+
@echo "{\"remote_url\":\"${remote_url}\",\"last_commit_id\":\"${last_commit_id}\"}" > release_info.json
15+
@git archive -v -9 --format zip -o dist/${archive_file_name} HEAD
16+
@zip -u dist/${archive_file_name} release_info.json
17+
@rm release_info.json
18+
@echo "[SUCCESS] Archiving plugin to dist/ folder: Done!"
19+
20+
dist-clean:
21+
rm -rf dist

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Snowflake stages export
2+
3+
![Support level](https://img.shields.io/badge/support-Tier%202-yellowgreen)
4+
5+
[Snowflake stages](https://docs.snowflake.com/en/sql-reference/ddl-stage.html) are Snowflake objects pointing to a storage location.
6+
They are used to load and unload data from Snowflake, without passing credentials in the copy command.
7+
8+
This plugin is about unloading data from a DSS Snowflake dataset to a Snowflake stage.
9+
10+
## Installation
11+
12+
Please refer to the [Installing plugins](https://doc.dataiku.com/dss/latest/plugins/installing.html) DSS documentation.
13+
14+
### Python code env
15+
16+
This plugin requires Python >= 3.6.
17+
18+
If your DSS built-in Python env doesn't match, please create a [plugin code env](https://doc.dataiku.com/dss/latest/code-envs/plugins.html#creating-code-environment-instances-for-plugins)
19+
20+
## Usage
21+
22+
See https://www.dataiku.com/dss/plugins/info/snowflake-stages-export.html
23+
24+
## Release notes
25+
26+
See the [changelog](CHANGELOG.md) for a history of notable changes to this plugin.
27+
28+
## License
29+
30+
This plugin is distributed under the [Apache License version 2.0](LICENSE).

code-env/python/desc.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"acceptedPythonInterpreters": [
3+
"PYTHON36",
4+
"PYTHON37"
5+
],
6+
"forceConda": false,
7+
"installCorePackages": true,
8+
"installJupyterSupport": false
9+
}

code-env/python/spec/requirements.txt

Whitespace-only changes.

0 commit comments

Comments
 (0)