Constructors for 2.0
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza revisando los constructores de SimpleGraph enumerados y las firmas propuestas de Graph y MultiGraph. Compara cómo deberían representarse las colecciones de vértices, las matrices de adyacencia, las listas de aristas, los generadores y los multigrafos en la API 2.0. Se considera completado cuando se alcance un acuerdo sobre un diseño coherente de constructores; este issue es un hilo de discusión, no una tarea de implementación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Here is a thread for discussing the constructors for Graphs 2.0
Current constructors
Constructors for SimpleGraph
SimpleGraph{T}(): empty graphSimpleGraph{T}(nv::Integer): graph with no edgesSimpleGraph{T}(nv::Integer, ne::Integer): random graph (erdos-renyi)SimpleGraph(::Type{T}): empty graphSimpleGraph(nv::Integer, ne::Integer, edgestream::Channel): add edges from the stream until stream end or we reachneedges.SimpleGraphFromIterator(edgelist)SimpleGraph(adjmx::AbstractMatrix)SimpleGraph{T}(g::AbstractGraph)SimpleGraph(edge_list::Vector{SimpleGraphEdge{T}})
Goals for 2.0
We will have a new concrete graph type Graph{V} which can represent arbitrary vertices.
We would need new constructors to be able to construct such new graphs.
Instead of passing nv, we should provide a list (or even an iterator ?) of the vertices of the graph.
As the type of vertices can be arbitrary, the type signatures of generators can quickly become a mess / incompatible
Also we will need to support multigraphs
My proposal
Graph{V}()andGraph(::Type{V})should be unambiguous- Remove
SimpleGraph{T}(nv::Integer, ne::Integer)(much better to call explicitlyerdos-renyi) - I don't really get this one
SimpleGraph(nv::Integer, ne::Integer, edgestream::Channel), I think It does not add much toSimpleGraphFromIterator - Keep
Graph{T<:Integer}(nv::Integer) - Use keywords for other generators:
Graph{V<:Integer}(adjmx=adjmx)(Multi)Graph{V}(edge_list=edge_list)(Multi)Graph{V}(vertices=vertices)(Multi)Graph{V}(vertices=vertices::Vector{V})Graph{V}(vertices=vertices::Vector{V}, adjmx=adjmx)(Multi)Graph{V}(vertices=vertices::Vector{V}, edge_list=edge_list)
Is this proposal sound?
Do you have some other ideas of generators? A better proposal?
- Lenguaje dominante
- Julia
- Estrellas
- 11
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaGraphs/GraphsBase.jl
-
question
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
JuliaGraphs/GraphsBase.jl#28 ·
-
question
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaGraphs/GraphsBase.jl#27 · 1 comentario · 1 reacción ·
-
question
Dificultad 5/5 Más de una semana Aptitud para principiantes 22/100
JuliaGraphs/GraphsBase.jl#26 · 6 comentarios · 2 reacciones ·
-
question
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaGraphs/GraphsBase.jl#25 · 3 comentarios · 1 reacción ·
-
Fallback on integer verticesAbiertoquestion
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaGraphs/GraphsBase.jl#24 ·
Todos los issues de JuliaGraphs/GraphsBase.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
JuliaGPU/GPUArrays.jl#837 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
bmad-sim/BeamTracking.jl#382 ·
Los mantenedores suelen responder en 1 día