Compatibility with Frictionless lib pattern
See original GitHub issueThis is looking awesome 👏 👏 @roll
A few thoughts on compatibility with our agreed RFC https://github.com/frictionlessdata/project/blob/master/rfcs/0004-frictionless-data-lib-pattern.md (which we can tweak). I haven’t reviewed thoroughly so this incomplete and for discussion …
File
:- All metadata should go into
descriptor
attribute rather than direct on object except for computed attributes e.g. hash, size (I’m still not sure about computed attributes). so you haveFile.descriptor
wdyt? stream
andbuffer
rather thanread_...
functions
- All metadata should go into
Table
: i like the Table object distinct from File though it means thatrows
only makes sense here …
also a question
- File vs Resource as naming for core object
Issue Analytics
- State:
- Created 3 years ago
- Comments:6 (6 by maintainers)
Top Results From Across the Web
Patterns - Frictionless Standards
This pattern allows users to link values in a field (or fields) in a Tabular Data Resource to values in a field (or...
Read more >Frictionless Data Compatibility - Open Data Blend Docs
The Frictionless Libraries simplify integrations with the Open Data Blend Data API from many languages, including Python and R. More specifically, ...
Read more >Design Systems 101: Designer's Guide to Frictionless UI | Speck
The book covers the idea of establishing a framework that can help UX designers work with repeatable elements and it discusses the qualities...
Read more >GitHub - frictionlessdata/frictionless-js
frictionless.js follows the "Frictionless Data Lib Pattern". Open it fast: simple open method ... Frictionless: compatible with Frictionless Data standards.
Read more >Reading Third-Party Schema - pandera
This parses the standard set of frictionless constraints which can be found here and maps them into the equivalent pandera checks. Return type....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Hi @rufuspollock, thanks!
Regarding Frictionless Lib Pattern. Haven’t we agreed that all the libraries/drivers/SDKs should follow it if possible e.g.
tableschema-py
/datapackage-rb
/etc and high-level frameworks should be as pythonic/javascriptic/etc as possible?I think that high-level frameworks should embrace the best from a targeted language. For example, in Python it’s possible to subclass dicts which led to solving various metadata problems like this - https://github.com/frictionlessdata/datapackage-py/issues/213 and dropping those annoying
package/resource.commit()
calls, etc. In JavaScript or R it will probably be a different way to work with metadata to make it optimal/native for those platforms. Any unifications here will degrade the overall user-experience I believe.On the other hand, for drivers/SDKs which if for low-level integrators unification should be a great idea. And for them, we have Frictionless Lib Pattern. At least it’s how I understood it.
I would follow the Specs here i.e. using
resource
WDYT? I did a lot to make the framework as much complaint with the Specs as possible e.g. using the Dialect concept etc.Regarding the current
frictionless.File
class. I dropped a lot of useless abstractions we had with layeredtabulator/tableschema/datapackage/goodtablbes
but still had to preserve some extra classes just to make the whole thing work (you know “We can solve any problem by introducing an extra level of indirection.”). TBH I would be happy if e.g. we can mergeFile
andResources
classes at some point. It just needs to be thought through really closely. Another question, that it’s kinda a lower level and I would rather focus e.g. on visual application work which should be more important for the project than low-lever refactorings.PS. I found the doc from our meeting
@rufuspollock Let’s discuss it on a call