question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Compatibility with Frictionless lib pattern

See original GitHub issue

This 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 have File.descriptor wdyt?
    • stream and buffer rather than read_... functions
  • Table: i like the Table object distinct from File though it means that rows only makes sense here …

also a question

  • File vs Resource as naming for core object

Issue Analytics

  • State:open
  • Created 3 years ago
  • Comments:6 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
rollcommented, Sep 28, 2020

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.

File vs Resource as naming for core object

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 layered tabulator/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 merge File and Resources 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 fd

0reactions
rollcommented, Nov 5, 2020

@rufuspollock Let’s discuss it on a call

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found