New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do we need filename, directory, and output #47

Closed
ruebot opened this Issue Sep 2, 2018 · 8 comments

Comments

Projects
None yet
3 participants
@ruebot
Member

ruebot commented Sep 2, 2018

This is what we have currently:

--file {FILENAME} - sets the default filename. If not set, graphpass will use a default network in /assets.
--dir {DIRECTORY} - the path to look for {FILENAME} by default this is assets/
--output {OUTPUT} - the directory to send output files such as filtered graphs and data reporst.

This deviates from stdin/stdout. It's confusing and difficult to work with. When the output of the build is just graphpass. How and where is it going to look for assets?

GraphPass should just take an input, and then produce an output.

@ruebot ruebot added the enhancement label Sep 2, 2018

@ianmilligan1

This comment has been minimized.

Show comment
Hide comment
@ianmilligan1

ianmilligan1 Sep 3, 2018

Member

Just echoing that this would be a dramatic increase in usability. The standard job could then be something like:

./graphpass -gq /path/to/file.graphml /path/to/output.gexf

It would also prevent needing to remember the trailing / in --output, which I always forget. 😄

Member

ianmilligan1 commented Sep 3, 2018

Just echoing that this would be a dramatic increase in usability. The standard job could then be something like:

./graphpass -gq /path/to/file.graphml /path/to/output.gexf

It would also prevent needing to remember the trailing / in --output, which I always forget. 😄

@greebie

This comment has been minimized.

Show comment
Hide comment
@greebie

greebie Sep 3, 2018

Collaborator

Makes sense to me. Whatever approach works best works for me.

Collaborator

greebie commented Sep 3, 2018

Makes sense to me. Whatever approach works best works for me.

@greebie

This comment has been minimized.

Show comment
Hide comment
@greebie

greebie Sep 5, 2018

Collaborator

After looking into it a bit, doing stdin stdout is possible, but requires some re-working of the existing code because of the way the filtering works.
It's not a big problem, but it means I will need to do some splitting of the FILEPATH to get at a filename (necessary for handling various ways of filtering the graph).

This does not mean much to the quickpass feature, but I'd like it to not break if someone uses it a different way.

Collaborator

greebie commented Sep 5, 2018

After looking into it a bit, doing stdin stdout is possible, but requires some re-working of the existing code because of the way the filtering works.
It's not a big problem, but it means I will need to do some splitting of the FILEPATH to get at a filename (necessary for handling various ways of filtering the graph).

This does not mean much to the quickpass feature, but I'd like it to not break if someone uses it a different way.

@ianmilligan1

This comment has been minimized.

Show comment
Hide comment
@ianmilligan1

ianmilligan1 Sep 5, 2018

Member

Interesting! Could you walk me through this a bit.. what would we potentially lose by going to stdin stdout?

Member

ianmilligan1 commented Sep 5, 2018

Interesting! Could you walk me through this a bit.. what would we potentially lose by going to stdin stdout?

@greebie

This comment has been minimized.

Show comment
Hide comment
@greebie

greebie Sep 5, 2018

Collaborator

I do not think we have to lose anything. It's just that I would have to do some additional work to keep things running the way they do now.

For example, if you do .graphpass -f {FILENAME} -m oidp -p 10

It would use FILENAME to create outputs for degree, indegree, outdegree and pagerank filtering with new filenames FILENAME10Degree.graphml, FILENAME10Indegree.graphml and so on.

If I just have a filepath (eg. /Users/username/bleh.graphml), I cannot do that. I have to retrieve "bleh.graphml." Similar for the outpath. This is not a major problem, but it means I have to refactor a range of things across the board.

With a low-level language like c, it's pretty important to not have anything break, even if it's not used.

Also, I think that once this bit is finished, we will need to push a 0.+1.0 release, since it's a significant change to the way the graphpass works.

Collaborator

greebie commented Sep 5, 2018

I do not think we have to lose anything. It's just that I would have to do some additional work to keep things running the way they do now.

For example, if you do .graphpass -f {FILENAME} -m oidp -p 10

It would use FILENAME to create outputs for degree, indegree, outdegree and pagerank filtering with new filenames FILENAME10Degree.graphml, FILENAME10Indegree.graphml and so on.

If I just have a filepath (eg. /Users/username/bleh.graphml), I cannot do that. I have to retrieve "bleh.graphml." Similar for the outpath. This is not a major problem, but it means I have to refactor a range of things across the board.

With a low-level language like c, it's pretty important to not have anything break, even if it's not used.

Also, I think that once this bit is finished, we will need to push a 0.+1.0 release, since it's a significant change to the way the graphpass works.

@ianmilligan1

This comment has been minimized.

Show comment
Hide comment
@ianmilligan1

ianmilligan1 Sep 5, 2018

Member

👍 Sounds good, thanks for walking me through this. I think implementing this makes sense, with the recognition that we should note it as a major milestone change.

Member

ianmilligan1 commented Sep 5, 2018

👍 Sounds good, thanks for walking me through this. I think implementing this makes sense, with the recognition that we should note it as a major milestone change.

@ruebot

This comment has been minimized.

Show comment
Hide comment
@ruebot

ruebot Sep 5, 2018

Member

Also, I think that once this bit is finished, we will need to push a 0.+1.0 release, since it's a significant change to the way the graphpass works.

We should probably push a release with the recent bugs that were fixed, and all the restructuring as soon as possible. If there is going to be a bit of time needed to implement this issue, then we can cut another one after that.

As for output, generally user has control over what to call the output and how to redirect it. stdout is generally printed -- streamed -- out to the console. From there, the user does whatever they want to do with it.

With a low-level language like c, it's pretty important to not have anything break, even if it's not used.

It's so early on here, I don't think it matters. We haven't cut a 1.0.0 were we've declared what the API(s) do. It's worth reading the semver manifesto if you haven't already.

Member

ruebot commented Sep 5, 2018

Also, I think that once this bit is finished, we will need to push a 0.+1.0 release, since it's a significant change to the way the graphpass works.

We should probably push a release with the recent bugs that were fixed, and all the restructuring as soon as possible. If there is going to be a bit of time needed to implement this issue, then we can cut another one after that.

As for output, generally user has control over what to call the output and how to redirect it. stdout is generally printed -- streamed -- out to the console. From there, the user does whatever they want to do with it.

With a low-level language like c, it's pretty important to not have anything break, even if it's not used.

It's so early on here, I don't think it matters. We haven't cut a 1.0.0 were we've declared what the API(s) do. It's worth reading the semver manifesto if you haven't already.

@greebie

This comment has been minimized.

Show comment
Hide comment
@greebie

greebie Sep 10, 2018

Collaborator

Thanks @ruebot. Let's push a release after the next PR and then another that covers stdin stdout + documentation changes.

Collaborator

greebie commented Sep 10, 2018

Thanks @ruebot. Let's push a release after the next PR and then another that covers stdin stdout + documentation changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment